gpt4 book ai didi

c - 在 C 中的 while 循环中发布增量

转载 作者:太空狗 更新时间:2023-10-29 16:55:20 25 4
gpt4 key购买 nike

这是一个非常简单的 C 程序:

int main()
{
int i = 0;
while(i++ < 10)
printf("%d\n", i);

return 0;
}

结果是:

1
2
3
4
5
6
7
8
9
10

为什么 0 不是要打印的第一个数字?如果我用 ++i 替换 i++ 我会得到这个:

1
2
3
4
5
6
7
8
9

对于 i++++i,第一个数字都是 1
我希望在 while 循环 while() 中看到后增量的 0
谢谢。

最佳答案

i++ (和 ++i )作为 while 的一部分完成表达式求值,发生在打印之前。所以这意味着它将始终打印 1最初。

i++ 之间的唯一区别和 ++i variants 是当增量发生在表达式本身内部时,这会影响打印的最终值。每个的等效伪代码是:

while(i++ < 10)            while i < 10:
i = i + 1
printf("%d\n", i); print i
i = i + 1

和:

                           i = i + 1
while(++i < 10) while i < 10:
printf("%d\n", i); print i
i = i + 1

假设i最多 9 .与 i++ < 10 , 它使用 9 < 10对于 while表达式 then 递增 i打印前到 10。所以支票使用 9 然后打印 10。

++i < 10 , 它首先递增 i 然后 使用 10 < 10对于 while表达。所以检查使用 10 并且打印任何东西,因为循环已经因为检查而退出。

关于c - 在 C 中的 while 循环中发布增量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25538672/

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