9

違いは何ですか:

char fast_car[15]="Bugatti";

char fast_car[15];
fast_car="Bugatti";

2番目の結果はコンパイルエラーになるため:

エラー: 型 'char *' から型 'char[15]' に代入するときに互換性のない型です</p>

最初のものはうまくいきますが。配列の初期化とは異なる場所にある配列に文字列を配置すると便利です。

4

2 に答える 2

10

1 つ目は初期化で、2 つ目は代入です。配列は C では変更可能な値ではないため、新しい値を割り当てることはできません。

注意してください、配列の内容を変更できますが、言うことはできませんfast_car = ...。したがって、内容は変更可能ですが、配列自体は変更できません


=これらの大きく異なる概念に同じ記号を使用することには、議論の余地があります。

于 2012-08-28T13:24:10.370 に答える
4
char fast_car[15]="Bugatti";

fast_car は配列であり、文字列「Buratti」で初期化されると書かれています。正しい使い方:

char fast_car[15];
fast_car="Bugatti";

1行目はchar配列の宣言(未初期化)です。次に、ここでの fast_car は、この char 配列の最初の要素のアドレス (ポインター) です。char "Buratti" の配列へのポインター fast_car の割り当ては、値の型の違いにより正しくありません。

于 2012-08-29T05:02:33.560 に答える