鱼C论坛

 找回密码
 立即注册
查看: 3008|回复: 9

关于自增自减运算符的疑问,求帮助

[复制链接]
发表于 2012-4-30 09:58:56 | 显示全部楼层 |阅读模式

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

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

x
  1. #include<stdio.h>

  2. void main()

  3.         {
  4.              int a,b,c,d;
  5.                  a=5;
  6.                  b=5;
  7.                  c=(a++)+(a++)+(a++);
  8.                  d=(++b)+(++b)+(++b);
  9.                  printf("a=%d\nb=%d\nc=%d\nd=%d\n",a,b,c,d);
  10.         }
复制代码



上面代码的输出里面 为什么d=22啊,


小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-4-30 10:17:07 | 显示全部楼层

回帖奖励 +1 鱼币

小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-4-30 10:20:49 | 显示全部楼层
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-4-30 10:27:40 | 显示全部楼层

回帖奖励 +1 鱼币

这种问题没意义,在不同编译器上可能得到不同结果,可读性差。
如果想了解,http://wenku.baidu.com/view/ea0bf924af45b307e871976c.html
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-4-30 10:30:25 | 显示全部楼层
。。。。。。。。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
 楼主| 发表于 2012-4-30 10:30:58 | 显示全部楼层
:o 汗啊 。。。。。。。。。。。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-4-30 10:35:30 | 显示全部楼层

回帖奖励 +1 鱼币

我来说看看   如果弄懂的话  给我点鱼币啊    1个也行  二个最好
对于不同的编译器    会产生不同的结果    你可以在不同的编译器上运行这个语句    你会发现 可能是22 23 等
对于VC6.0   他是先将b有5加1   此时为6   再将b加1  为7  此时b为7   然后将前2个数相加为14    在将b加1
为8     最后将14与最后一个8相加为22
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-4-30 15:42:45 | 显示全部楼层

回帖奖励 +1 鱼币

假设 b=1;
++b  就是在原来的基础上加了1再赋给b,所以++b结果就是1+1=2;
--b     就是在原来的基础上减掉1再赋给b,所以--b的结果就是1-1=0;
b++ b在前,在执行下一步之前它不变,如果执行到了下一步就是b+1,在还没执行下一步之前,这个b++的结果还没加1,所以b++的结果就是1
b--  类似b++ 。所以b--的结果就是1

其实你for语句慢慢多练习了就知道b++ b-- --b ++b怎么运用了。
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-4-30 19:24:58 | 显示全部楼层

回帖奖励 +1 鱼币

http://bbs.fishc.com/thread-15954-1-1.html
看这个吧! 说的很经典的哦!
小甲鱼最新课程 -> https://ilovefishc.com
发表于 2012-5-10 05:46:28 | 显示全部楼层
c标准值保证在 d=(++b)+(++b)+(++b);这条语句的分号(也可以说是顺序点)之前,b自加三次,至于怎么自加(什么顺序)那是编译器的问题,c标准都留给c提供商了
小甲鱼最新课程 -> https://ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2025-11-13 02:48

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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