c - 带和不带显式尾随终止符的字符串初始化

标签 c

有什么区别

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/

相关文章:

c++ - 进行变换的最快方法(移动、旋转、缩放)

c - 修复 C switch 语句函数溢出?

转换函数指针

c# - Web 开发人员学习 C 语言有什么好处吗?

c++ - 如何在 GCC 中禁用/启用预取?

检查 C 值中的元素

c - 在不知道类型的情况下打印数据?

C 中的堆栈变量损坏

c - 如何在 C 中读取具有不同格式的多行 TXT 文件?

c - 如何正确验证 scanf 中读取了多少输入