9

有什么区别:

char fast_car[15]="Bugatti";

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

因为第二个导致编译错误:

错误:从类型“char *”分配给类型“char [15]”时类型不兼容</p>

虽然第一个工作正常。将字符串放在数组中与数组初始化不同的位置会很有帮助。

4

2 回答 2

10

第一个是初始化,第二个是赋值。由于数组在 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";

第一行是 char 数组的声明(未初始化)。其次,这里的 fast_car 只是这个 char 数组中第一个元素的地址(一个指针)。将指针 fast_car 分配给 char "Buratti" 数组的分配因值的不同类型而不正确。

于 2012-08-29T05:02:33.560 回答