c - c中数组最多可存储的元素个数

标签 c arrays string

如果是抄袭问题请见谅。如果指出,我很乐意将其删除。

问题是,如果我在 c 中声明一个字符数组,比如

char character_array[4];

这是否意味着我只能存储 3 个字符并添加一个 '/0' 作为第四个字符?但是我已经试过了,并且成功地在字符数组中添加了四个字符。但是,当我这样做时,由于我已经用完了四个位置,“/0”在哪里添加?

最佳答案

嗯,是的,您可以存储任意四个字符。字符串终止字符 '\0' 与其他任何字符一样。

但您不必存储字符串,char 是一个小整数,因此您可以:

char character_array[] = { 1, 2, 3, 4 };

这使用了所有四个元素,但不存储可打印字符或任何终止符;结果不是 C 字符串。

如果要存储字符串,当然需要容纳终止符,因为根据定义,C 字符串总是以终止符结尾。

C 没有防止缓冲区溢出的保护,如果你瞄准你的脚并扣动扳机,通常它会很高兴地为你开枪。我们中的一些人喜欢这样。 :)

关于c - c中数组最多可存储的元素个数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44651320/

相关文章:

c++ - 具有恒定大小的 vector

c++ - 将 uint8 的 vector 转换为字符串

python - 从字符串中删除特定的控制字符 (\n\r\t)

c++ - 如何在 Win32 应用程序中拖动纯色矩形而不会出现白色闪烁且不会干扰屏幕上的其他对象?

c - 实现 Linux shell 时的 emacs

c++ - 使用 `` 1ll<<(N-1 )`` 将大量值分配给 long long int 变量

python - 这将是哪种 Python 数组?它已经存在于 Python 中了吗?

c - 如何将字符串c程序中的每个单词大写

C 到 python 代码转换

c - 如何为 C/C++ 构建和使用 Sigar?