鱼C论坛

 找回密码
 立即注册
查看: 2738|回复: 3

解释一下

[复制链接]
发表于 2017-9-18 13:20:33 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
int n=0;
while(n++<=2);
printf("%d",n);
答案是输出结果为4
小甲鱼最新课程 -> https://ilovefishc.com
回复

使用道具 举报

发表于 2017-9-18 15:11:00 | 显示全部楼层
= =想输出123 就把循环后面分号去掉..加上了后只会输出一次= =
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-18 16:07:13 | 显示全部楼层
因为n++ <= 2是先判断然后再自加的,所以当n=2时满足条件,n自加1,n=3时不满足条件,n自加1后跳出循环,所以n=4。
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-9-18 16:13:38 | 显示全部楼层
在没有看到你这问题的时候我也不清楚,所以反调试了一下,编译器的执行过程是这样的,我直接用C表示了。while(n++ <= 2)相当于以下代码:
  1. int a,b;
  2. do
  3. {
  4.    a = n;
  5.    n++;
  6.    if(a > 2)
  7.    {
  8.        b = 0;
  9.    }
  10.    else
  11.    {
  12.        b = 1;
  13.    }
  14. }while(b);
复制代码
小甲鱼最新课程 -> https://ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-5-31 22:32

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表