| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1245 人关注过本帖
标题:请教自增自减运算
只看楼主 加入收藏
caoweidong
Rank: 2
等 级:论坛游民
帖 子:15
专家分:11
注 册:2010-5-27
收藏
得分:0 
那下面怎么解释呢?
#include<stdio.h>
int main()
{
     int a=5,b=5,c,d;
     c=(a--)+(--a)+(a--)+(--a);
     d=(--b)+(b--)+(--b)+(b--);
     printf("%d\n%d\n%d\n%d\n",c,d,a,b);
     return 0;
}
答案为15,14,1,1
2010-05-28 20:32
tpengti
Rank: 2
等 级:论坛游民
帖 子:75
专家分:18
注 册:2010-5-9
收藏
得分:1 
追问一下:a--后a的值会变成3啊,那第二个a--的值应该是3啊

没有开发不了的软件,只有开发不了的大脑
2010-05-28 20:48
a397448342
Rank: 1
等 级:新手上路
帖 子:27
专家分:6
注 册:2010-5-27
收藏
得分:1 
6楼的解释很正确。
C=(a--)+(--a)+(a--);
有的系统按照自左向右的运算顺序,先求的第一个括号的的,然后a先自减。再求第二个括号的值。。。就变成c=5
+4+4=13,
而在turbo系统中,5被一次性的分给了三个a的值,--a是在a被用前就变成4了,所以,C=4+4+4=12
同理,d=9了,
为防止歧义,可把程序改成:
int main()
{
int a=5,b=5,c1,c2,c3,b1,b2,b3,c,d;
c1=a--;
c2=--a;
c3=a--;
b1=--b;
b2=b--;
b3=--b;
c=c1+c2+c3;
d=b1+b2+b3;
printf("%d\n%d\n%d\n%d\n",c,d,a,b);
ruturn(0);
}
结果为:11,10,2,2
2010-05-28 21:11
a397448342
Rank: 1
等 级:新手上路
帖 子:27
专家分:6
注 册:2010-5-27
收藏
得分:0 
有点难以理解
c=(a--)+(--a)+(a--)=(5--)+(--5)+(--5)=4+4+4=12
2010-05-28 21:27
caoweidong
Rank: 2
等 级:论坛游民
帖 子:15
专家分:11
注 册:2010-5-27
收藏
得分:0 
这问题没什么好讨论的,实际工作中谁要是这么搞肯定等着挨批,知道就行了
2010-05-28 22:17
Zale_YT
Rank: 2
等 级:论坛游民
帖 子:22
专家分:15
注 册:2010-5-27
收藏
得分:1 
这个与编译器有关的,不同的编译器结果不同。
2010-05-28 22:20
vs_inzaghi
Rank: 5Rank: 5
来 自:湖北
等 级:职业侠客
威 望:1
帖 子:303
专家分:364
注 册:2009-8-17
收藏
得分:0 
经常看到别人这样写,比如LZ也是这样写
int main()
{
……
return(0);
}
想顺便问一下,这样写和void main实际没多大区别,但是有什么不同呢?哪种习惯好些呢?

我很懒,但我讨厌别人说我懒……
2010-05-28 23:02
caoqiangkill
Rank: 2
等 级:论坛游民
帖 子:18
专家分:10
注 册:2010-5-28
收藏
得分:0 
这个通过大家的解释本人已基本了解,谢谢大家的帮助!!!!
2010-05-29 00:17
陛下
Rank: 2
来 自:南宁
等 级:论坛游民
帖 子:62
专家分:90
注 册:2010-5-15
收藏
得分:1 
第一个a是5,第二个a是4,第三个a是3;因为第一次运行时(一个表达式为一个运行)a--中a并没有发生改变,第二次--a则-1,第三次在第二次的基础上在-1;就是3
b是同样道理
2010-05-29 02:09
tpengti
Rank: 2
等 级:论坛游民
帖 子:75
专家分:18
注 册:2010-5-9
收藏
得分:0 
回复 19楼 陛下
a--后a的值应该会自减吧变成3吧

没有开发不了的软件,只有开发不了的大脑
2010-05-30 23:09
快速回复:请教自增自减运算
数据加载中...
 
   



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

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