gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-30 17:03:43 24 4
gpt4 key购买 nike

这可能看起来微不足道,但我是编程新手。对于字符串,我们应该为空字符保留一个空间,因此大小为 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com