c - 字符数组的状态

标签 c arrays string pointers

<分区>

我是这样声明一个字符数组的——

char str[16]= "The world is";

我知道它的第 13 个字符将是 '\0'。但我对 str 中 16 之前的其余字符值感到好奇。是不是都赋值给了'\0'。我搜索了它,但找不到很好的解释。所以我想另一种最快的方法是在这里问。:)

最佳答案

其余的将包含零。您实际上正在做的是按如下方式初始化您的数组:

char str[16]= {'T','h','e',' ','w','o','r','l','d',' ','i','s','\0'};

如果你在 C 中初始化一个给定长度的数组,用更短的长度,C 将用 0 填充其余部分。

示例:这将给出一个用零填充的数组

int str[16]= {0};

所以你写的等同于:

char str[16]= {'T','h','e',' ','w','o','r','l','d',' ','i','s','\0',0,0,0};

请注意 0 == '\0'(均为 0000...)

关于c - 字符数组的状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19891983/

相关文章:

c++ - 堆栈实现

c++ - 使用较小的数组初始化 C++ std::array

string - Go 中的 UTF-8 范围表

c - 如何在 execl 系统调用中使用 cat 命令创建文本文件?

arrays - 如何快速将图像从数组下载到 tableviewcontroller?

c - 我怎样才能循环一个字符串?

C++ - 重复使用 istringstream

python - 定义变量类型! PYTHON

c - 用 C 编写程序,通过 for 循环查找用户定义的平均值

c++ - 掩蔽和转移