| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1086 人关注过本帖
标题:讨论一下++的使用
取消只看楼主 加入收藏
a402730324
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1233
专家分:0
注 册:2005-12-1
收藏
 问题点数:0 回复次数:3 
讨论一下++的使用
#define product(x) (x*x)

int main()
{
int i=3;
int j,k;
j=product(i++);
k=product(++i);
printf("j=%d,k=%d",j,k);
retun 0;
}

我觉得结果应该是:9,42
可是书上却是:9,49


还有大家觉得《程序员面试宝典》这本书怎么样?
我本来在看计算机算法,可是觉得有点枯燥,就翻了下这本书,觉得技巧还是蛮不错,就是书中错误好像太多了。
搜索更多相关主题的帖子: 计算机 int product 技巧 
2007-09-24 00:25
a402730324
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1233
专家分:0
注 册:2005-12-1
收藏
得分:0 
也对,我这人有点懒,竟然忘了运行,实在不好意思。

敢犯强汉者,虽远必诛!——陈汤 不知吾辈何时方能吐出此豪言壮语?
2007-09-24 00:38
a402730324
Rank: 5Rank: 5
等 级:贵宾
威 望:18
帖 子:1233
专家分:0
注 册:2005-12-1
收藏
得分:0 
怪拉,还真是9,49
看来要好好想想啦

敢犯强汉者,虽远必诛!——陈汤 不知吾辈何时方能吐出此豪言壮语?
2007-09-24 00:39
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
快速回复:讨论一下++的使用
数据加载中...
 
   



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

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