鱼C论坛

 找回密码
 立即注册
查看: 2462|回复: 2

关于自增自减运算的问题

[复制链接]
发表于 2012-6-18 20:17:11 | 显示全部楼层 |阅读模式
1鱼币
c语言第五章视屏,循环控制结构有这个程序

void main()
{
int a=0,n;
printf("\n input n:  ");
scanf("%d",&n);
while (n--)
{
  printf("%d  %d  %d\n",a++*2,n,a);
     if (a++*2>10000)  //  a++*2==>a=a*2;a++;
   { printf("stop!\n");
     break;
   }
  
}
}


问题:N--不理解,不是先使用,再递减吗?可打印出来的却是先  递减,再使用?我输入的是10,却从9,开始打印出来?


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2012-6-18 23:10:12 | 显示全部楼层
使用仅限当个语句,作用效果仅限括弧内!也即第一个判断的是10,而在大括号内用的却是9.
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2012-6-28 09:24:09 | 显示全部楼层
printf("%d  %d  %d\n",a++*2,n,a);
LZ 对于C语言来说 函数传递参数的顺序是不做要求的 可以从左往右 可以从右往左 所以 a++ 和 a 哪一个先执行不好判断
而且 你在2个顺序点中间修改同时读取a 再次致命一击 a的值晕晕乎乎了
另外 对于i++ 和 ++i这个
你这样记忆好了
表达式 i++的值是i 表达式执行完毕之后 i的值会加1
表达式++i 的值是i+1 表达式执行完毕之后 i的值会加1
所以 对于 while(n--)
表达式n--的值是n while根据n的值判断是不是继续循环
而在while之后 就是进入循环体 或者是 退出循环体的时候
表达式已经执行完毕 n的值是减1的
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 16:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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