| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1086 人关注过本帖
标题:讨论一下++的使用
只看楼主 加入收藏
电脑爱好者
Rank: 1
等 级:新手上路
帖 子:43
专家分:0
注 册:2006-5-6
收藏
得分:0 
以下是引用shiyunxu在2007-9-24 10:00:46的发言:

程序1:
a=2;
b=(++a)+(a++)+( a--)+(--a);
printf("d",b);
程序2:
a=2;
printf("d",(++a)+(a++)+( a--)+(--a));
两程序的运行结果分别为8,12。
请问为何??

printf后面的是%d,%这个符号是格式说明符号,别丢了》。。

这个运行结果没有错误.你自己想想,你的编译器如果错了,那还弄什么编程啊。。呵呵。。

我亲自试验过了,TC下面,第一个题目是8,VC下面,结果是11,GCC下面,结果也是11.

第二个题目,TC下面是12,VC下面也是11,GCC下面也是11.

总结,楼主使用的是古董TC编译器.TC编译器的顺序是:

第一题目:从左向右,最后a是2.4个2加起来是8

第二题名:从右向左,最后a是3.4个3加起来是12

2007-09-24 20:43
a402730324
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1233
专家分:0
注 册:2005-12-1
收藏
得分:0 
以下是引用xiaopi_zj在2007-9-24 14:54:11的发言:

i++ 是先赋值 再自增
所以j=product(i++);相当于j=(i++)*(i++) 的结果为3*3=9 i自增了两次所以i=5
++i 是先自增 再赋值
所以k=product(i++);相当于j=(i++)*(i++) 第一个括号i=6 第二个括号时i=7 所以此时的i=7
结果就是7*7=49

我这么总觉得是 6*7=42,按我个人的理解,我觉得第二个++i对一个没影响,我们不是先使用的6,然后才计算第二个++i。


敢犯强汉者,虽远必诛!——陈汤 不知吾辈何时方能吐出此豪言壮语?
2007-09-24 21:03
yyce
Rank: 1
等 级:新手上路
帖 子:36
专家分:0
注 册:2007-9-19
收藏
得分:0 
回复:程序2:
a=2;
printf("d",(++a)+(a++)+( a--)+(--a));
这里的a一直在改变 程序运算过程是:3+3+4+2=12
2007-09-24 22:51
缘吇弹
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:地球
等 级:版主
威 望:43
帖 子:3038
专家分:27
注 册:2007-7-2
收藏
得分:0 
[QUOTE]
i++ 是先赋值 再自增
所以j=product(i++);相当于j=(i++)*(i++) 的结果为3*3=9 i自增了两次所以i=5

++i 是先自增 再赋值
所以k=product(++i);相当于j=(++i)*(++i) 第一个括号i=6 第二个括号时i=7 所以此时的i=7
结果就是7*7=49
[/QUOTE]

你看这样是不是容易理解:

x=(++i);
k=product(++i);相当于j=x^2; /* ++是先自增再运算的,那么第一个x自增后就是6啦,后边的x在6的基础上又自增为7,
由于它们同为x,那么它们的值是不是会受到影响啊? 最后相当j=x^2 那么结果
就是 7^2=49啦.*/

[此贴子已经被作者于2007-9-24 23:31:02编辑过]


Repeat  Life=Study;Until (death);
2007-09-24 23:29
josen0205
Rank: 2
来 自:江苏
等 级:论坛游民
帖 子:307
专家分:52
注 册:2007-5-8
收藏
得分:0 
b=(++a)+(a++)+( a--)+(--a);
相信很少有人会去这样写程序,而且结果也和编译器有关,移植性很差

只有想不到,没有做不到
2007-09-25 13:48
wangwang168
Rank: 1
等 级:新手上路
帖 子:48
专家分:0
注 册:2007-5-8
收藏
得分:0 
我是学C++入门的,现在对++操作符的运用都不是很得心应手啊

我有一个梦想
2007-09-25 18:39
快速回复:讨论一下++的使用
数据加载中...
 
   



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

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