有什么区别
char str1[32] = "\0";
和
char str2[32] = "";
最佳答案
由于您已经声明了尺寸,所以这两个声明完全相等。但是,如果您不指定大小,您会看到第一个声明生成了一个更大的字符串:
char a[] = "a\0";
char b[] = "a";
printf("%i %i\n", sizeof(a), sizeof(b));
打印
3 2
这是因为 a 以两个空值(显式一个和隐式一个)结束,而 b 仅以隐式一个结束。
关于c - 带和不带显式尾随终止符的字符串初始化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49596/