下面的程序在C语言中编译得很好,有警告,但是在C++中编译失败。为什么?原因何在?void) char a[5]="Hello"; puts(a); printf("%c"Error] initializer-string for array of chars is too long [-fpermissive] enabled by default
但是,如果程
在C中,字符串总是以\0字符结尾,因此字符串的长度是字符+ 1的数目。因此,如果您需要初始化一个12个字符的字符串,您必须“允许一个终止字符的元素”(来自第221页,“开始C",霍顿)。< has 13 elements
为什么C编译器允许我在没有\0字符的情况下创建一个固定大小的数组arr2,并在我请求一个可变大小的数组