c - 代码9的输出如何?
问题描述
#include <stdio.h>
int main()
{
int i=0;
while(i++,i<=8);
printf("%d\n",i);
return 0;
}
为什么i
在每个测试用例中比较后完成的增量?
解决方案
i <= 8
时最后一次成功i = 8
。
在最后一次迭代中,i++
执行,然后i <= 8
失败,因为i = 9
.
注意,,
是一个序列点,所以i++
绝对保证在之前执行i <= 8
。对于类似的构造,情况并非如此。
推荐阅读
- python - 来自线程 Flask 的安全数据库查询(peewee)
- c# - 从 USB 接收的数据不匹配 - Windows Form App (.NET Framework)
- php - 执行某些操作时将 IP 从 PHP 传递到 mysql
- c++ - 如何在 Linux 上使用带有 g++ 11.2 的 std::execution::par_unseq 和 std::execution::unseq 来利用向量化?
- visual-c++ - 如何简单地删除向量中的重复项?
- asp.net - 使用 HttpClient 同步调用异步方法时如何避免死锁
- list - 如何使用 Flutter Map 实现标记列表?
- r - 为什么我在尝试生成变异函数时在 R 中不断收到此错误?
- python - 如何删除方差在容差范围内的 pandas df 列?
- java - 通过java代码打印但作业总是卡在队列中