在char中为char数组赋值

时间:2012-08-28 13:23:12

标签: c arrays string char variable-assignment

有什么区别:

char fast_car[15]="Bugatti";

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

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

  

错误:从类型指定类型'char [15]'时出现不兼容的类型   'char *'

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

2 个答案:

答案 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”数组是不正确的值类型。