有什么区别:
char fast_car[15]="Bugatti";
和
char fast_car[15];
fast_car="Bugatti";
因为第二个导致编译错误:
错误:从类型指定类型'char [15]'时出现不兼容的类型 'char *'
虽然第一个工作正常。将数组中的字符串放在与数组初始化不同的位置会有所帮助。
答案 0 :(得分:10)
第一个是初始化,第二个是赋值。由于数组在C中不是可修改的值,因此无法为它们分配新值。
请注意,可以修改数组内容,您不能说fast_car = ...
。因此内容是可修改的,数组本身不是。
对于这些截然不同的概念使用相同的符号=
是值得商榷的。
答案 1 :(得分:4)
char fast_car[15]="Bugatti";
它说fast_car是一个数组,用字符串“Buratti”初始化。正确用法:
char fast_car[15];
fast_car="Bugatti";
第一行是char数组的声明(未初始化)。其次,fast_car只是这个char数组中第一个元素的地址(指针)。将指针fast_car分配给char“Buratti”数组是不正确的值类型。