| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 464 人关注过本帖
标题:还是有关自增自减的运算
只看楼主 加入收藏
caoqiangkill
Rank: 2
等 级:论坛游民
帖 子:18
专家分:10
注 册:2010-5-28
结帖率:83.33%
收藏
已结贴  问题点数:20 回复次数:5 
还是有关自增自减的运算
main()
{
 int a=5,b=5,c,d;
 c=(--a)-(--a)+(a--);
 d=(--b)-(b--)+(--b);
 printf("%d\n%d\n%d\n%d\n",c,d,a,b);
}
请教一下c=3,d=3,a=2,b=2,其中c值和d值的由来,最好能具体的给我解释一下,谢谢!!!!
搜索更多相关主题的帖子: 运算 
2010-05-29 00:35
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
晕死……给你个链接,很多人回复的,包括我……自己看吧……
完全是一样的帖子嘛……
https://bbs.bccn.net/thread-308520-1-1.html

我很懒,但我讨厌别人说我懒……
2010-05-29 01:55
caoqiangkill
Rank: 2
等 级:论坛游民
帖 子:18
专家分:10
注 册:2010-5-28
收藏
得分:0 
回复 楼主 caoqiangkill
那个就是我发的帖子啊
2010-05-29 12:56
xiaomanaruto
Rank: 6Rank: 6
等 级:侠之大者
帖 子:79
专家分:443
注 册:2010-4-1
收藏
得分:0 
楼主的答案有问题吧?
我觉得c应该等于4-3+3=4;
d应该等于4-4+2=2;
2010-05-29 13:00
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:20 
楼主,……我都看到有人给解释的很具体了,既然你强烈要求,我再来解释一下……
main()
{
int a=5,b=5,c,d;
c=(--a)-(--a)+(a--);
d=(--b)-(b--)+(--b);
printf("%d\n%d\n%d\n%d\n",c,d,a,b);
}
是这样的……
对于c的值,系统把2个(--a)和一个(a--)放在一起编译,先运行一次--a,这时a的值先自减一次,所以这时a=4,然后运行第二个--a,这时a=3,最后运行a--,注意,这时a的值不自减,因为你还没用到a--的值,所以a还是3,而--a和a--表达式的值也是3,因为它们本质上也是a的值,只是在得出a的值之前或者之后自减罢了,所以c=3-3+3=3,因为这时用到了a--的值,所以a再自减一次,所以最后a=2……
d的值楼主自己分析吧……
不知能理解否……
欢迎楼下补充……

我很懒,但我讨厌别人说我懒……
2010-05-29 18:31
吴冬
Rank: 2
来 自: 湖南岳阳
等 级:论坛游民
帖 子:33
专家分:55
注 册:2010-5-22
收藏
得分:0 
给你提示吧 按运算的优先级先算括号里的 然后是(--a是左结合优先级比赋值表达式高,先自减一再不值赋给a:a--=a=a-1)(a--是右结合性,先取a的值再减一)
2010-05-29 19:40
快速回复:还是有关自增自减的运算
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.015427 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved