c - 如果我声明一个 char 数组,我是否也必须计算空字符?

标签 c

例如:

char array[][5] = {"game", "house"};

house 适合数组还是我必须添加空字符所以我必须这样声明:

char array[][6] = {"game", "house"};

最佳答案

如果您将数组用作字符串,它必须包含终止空字符。终止空字符是数组的一部分,必须包含在其大小中。

许多标准 C 库例程都采用字符串 参数,这些参数是由空字符终止的字符数组。

也可以出于您自己的目的使用字符数组,而不将其传递给需要字符串的标准库函数。如果这是您使用数组的方式,则不需要包含终止空字符。

当您使用字符串文字初始化此类数组时,您不需要在数组大小中包含用于终止空字符的空间。仅当有空间时,字符串文字中的终止空字符才会用于初始化数组元素。

关于c - 如果我声明一个 char 数组,我是否也必须计算空字符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54606221/

相关文章:

child 使用管道进行计算

将 signed int 转换为 unsigned short,在 C 中将负值设置为零

c - 汇编程序员在 Linux/x86-64 系统调用中的结构布局?

C 期望标识符或 ‘(’ 在 ‘{’ 之前

C 动态内存与堆栈内存变量

c++ - 用 C/C++ 编写的通用代码完成框架

c - glib 从路由获取 ip 地址

c - 如何在 emscripten 编译库中读取用户指定的文件?

c - tcp 套接字读取调用如何永远不会返回

c - 如何在 C NOT C++ 中将 Mat 转换为 IplImage