私は基本的な説明をしました。ここで私が試したコードスニペットです。char配列に関する説明
void fill(char s[])
{
strcpy(s,"temp");
}
int main()
{
char line[100];
fill(line);
printf("%s",line);
return 0;
}
期待どおり、出力はtemp
です。 line
はローカル配列ですが、fill
に変更することができ、呼び出し元に反映されます。私が理解しているのは、fill(line)
と言うとき、実際には配列の開始アドレスを渡しているからです。
正しいですか?
いいえ、すべての値がCで渡されます。この場合、値はちょうどアドレス(つまりポインタ)になります。 – dmc