鱼C论坛

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

自增自减的运算

 关闭 [复制链接]
发表于 2011-5-15 15:59:39 | 显示全部楼层 |阅读模式

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

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

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

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

我想请问高手这两个程序的具体区别在哪里,请帮在下理一下思路,在下第二个程序能够理解,但第一个想不通,谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-15 16:41:08 | 显示全部楼层
本帖最后由 lxbwyr 于 2011-5-15 16:41 编辑

最后值没公布出来。也不知回答是不是对的。
曾经看到过别人所说的。希望对你有帮助,有错请大家指正。

++在前在后只体现给别的变量赋值时。对自身而言,都是加1。

比如a=i++;a=++i;如果i=5;那么前者a=5;后者a=6;原因是前者i先赋值给a后自加,而后者是先自加了然后再赋值,当然a的差别就体现出来了。对于i本身来说,都是加了1,i=6。

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-15 17:15:23 | 显示全部楼层
还没有学到C!观望中。。。。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-15 17:54:54 | 显示全部楼层
F11  单步跟踪!!就知道了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-15 22:36:03 | 显示全部楼层
回复 ayh 的帖子

不懂,希望能说的具体点!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-15 23:56:00 | 显示全部楼层
输出时计算机处理是从右到左的。。。。第一个程序。。。。所以你再看一遍吧
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-17 00:31:26 | 显示全部楼层
是个问题 学习
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
 楼主| 发表于 2011-5-18 18:04:15 | 显示全部楼层
还是不懂,从右到左答案也不对啊,!请高手出来指教!谢谢!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-20 00:55:18 | 显示全部楼层
是从右到左的。。。。你看啊,本来i=8,-i--后,i=7,但是i--是先执行(输出)语句,再自减1,所以输出的最后一个数是-8,此时i=7。-i++是右边第二个输出语句。同样,先输出-7,再i自加1,此时i=8。在看右边第三条指令:i--,先输出i(8),再i自减1,i=7。在看右边第四条指令,i++,先i输出(7),再i自加1,此时i=8。在看右边第五条指令:--i,i先自减1,i=7,在输出i(7)。在看左边第一条指令:++i,i先自加1(i=8),再输出:8。。。。。。所以你的第一段程序最后的输出结果应该是8   7   7   8    -7    -8。。。。。。另外,不同的编译器调试的结果不一样。所以只要记得怎么用就好了。。。自己写程序的时候没有必要这么纠结的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
发表于 2011-5-25 10:01:26 | 显示全部楼层
输出列表。是从右到左计算的。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

GMT+8, 2024-9-19 09:42

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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