私はCが初めてで、疑問があります。
C 関数はその引数のローカル コピーを作成するため、次のコードが期待どおりに機能する理由を知りたいです。
void function(int array[]){
array[0] = 4;
array[1] = 5;
array[2] = 6;
}
int main(){
int array[] = {1,2,3};
function(array);
printf("%d %d %d",array[0],array[1],array[2]);
return 0;
}
ライン出力は 4 5 6 です。
以下が機能しないのに、なぜこれが機能するのですか?
void function(int integer){
integer = 2;
}
int main(){
int integer = 1;
function(integer);
printf("%d",integer);
return 0;
}
この場合、出力は 1 です。
ショートバージョン:関数が配列として渡された場合、親変数の値を変更できるのはなぜですか?
皆さん、ありがとうございました!