首页 > 解决方案 > 代码9的输出如何?

问题描述

#include <stdio.h>
int main()
{
    int i=0;
    while(i++,i<=8);
    printf("%d\n",i);
    return 0;
}

为什么i在每个测试用例中比较后完成的增量?

标签: cwhile-loop

解决方案


i <= 8时最后一次成功i = 8

在最后一次迭代中,i++执行,然后i <= 8失败,因为i = 9.

注意,,是一个序列点,所以i++绝对保证在之前执行i <= 8对于类似的构造,情况并非如此。


推荐阅读