gpt4 book ai didi

c - 为什么这个程序会进入无限循环?

转载 作者:行者123 更新时间:2023-11-30 19:53:05 25 4
gpt4 key购买 nike

main()
{
int i;
int a[5];
for (i = 1; i <= 5; i++)
a[i] = 0;
printf("Hello, how are you? ");
}

为什么程序没有跳出循环?

最佳答案

C 数组是从零开始的,因此您应该使用索引 [0..4] 而不是 [1..5]。

写入a[5]会超出数组范围。这会产生未定义的结果;在您的情况下,这恰好是循环计数器 i 的地址,该地址被重置为 0。

您可以使用以下方法修复此问题

for (i = 0; i < 5; i++)

或者更好,

for (i = 0; i < sizeof(a)/sizeof(a[0]); i++)

作为你的循环。

关于c - 为什么这个程序会进入无限循环?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14055026/

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