很简单的问题。为什么第一个字母被截断?打印下降的“丑角”。我看到我可以用x = -1
硬编码一个修复程序,但是无法真正理解根本问题和了解解决方案的目的。谢谢。
#include <stdio.h>
int main()
{
int x = 0;
char iArray[7] = 'Charles';
while (x < 7) {
x++;
printf("%c\n", iArray[x]);
}
return 0;
}
最佳答案
您首先要递增索引,然后使用它来打印。
x++;
printf("%c\n", iArray[x]);
更改为
printf("%c\n", iArray[x]);
x++;
将解决该问题,并避免UB用于访问数组以外的内容。
当循环条件对于
x==6
仍然为真,并且索引然后增加到7,这将访问iArray[7]
时,发生第二个提到的问题。这超出了数组,因为大小为7的数组中可合法访问的最高索引为索引6。关于c - 打印数组中缺少第一个字符(循环时),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51702107/