C-GCC 编译器中的字符数组

标签 c arrays

这可能看起来微不足道,但我是编程新手。对于字符串,我们应该为空字符保留一个空间,因此大小为 10 的字符串只会为我们提供 9 个内存位置可供使用。我想知道当我们将字母单独输入数组时是否会发生同样的情况。有人可以解释一下吗?

最佳答案

在 C 语言中,字符串基本上一个数组。并且该数组的大小必须始终足够大以容纳终止空字符。所以如果我有

char array[10];

我能做到

array[0] = 'H';

array[5] = 'x';

但我最好停止在 array[8] 中输入字符,这样我就可以做到

array[9] = '\0';

最后。

底线:我可以做到这一点:

array[0] = 'C';
array[1] = 'a';
array[2] = 't';
array[3] = '\0';
printf("%s\n", array);

或者这个:

array[0] = 'S';
array[1] = 'p';
array[2] = 'a';
array[3] = 'g';
array[4] = 'h';
array[5] = 'e';
array[6] = 't';
array[7] = 't';
array[8] = 'i';
array[9] = '\0';
printf("%s\n", array);

但不是这个:

array[0] = 'H';
array[1] = 'e';
array[2] = 'l';
array[3] = 'i';
array[4] = 'c';
array[5] = 'o';
array[6] = 'p';
array[7] = 't';
array[8] = 'e';
array[9] = 'r';
array[10] = '\0';    /* XXX WRONG */

关于C-GCC 编译器中的字符数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36043856/

相关文章:

c - 如何正确定义char数组

c - 打印预处理器形成的变量标识符

c - RSA_private_decrypt 失败

c - 数组的索引和 argc 符号

java - 从一个数组中获取数据来创建另一个数组。这个循环有什么问题?

javascript - JQuery 向每个数组项添加另一个值并求和

c++ - 使用#pragma once 有什么危险?

arrays - 当它无言/已完成时,如何重新启动?大批! swift 3

php - 将多维php数组插入mysql表

javascript - 用逗号将字符串拆分为数字,然后打印最终会跳过 1 个 y 值