| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 877 人关注过本帖
标题:令初学者头疼的问题,进来瞅瞅
只看楼主 加入收藏
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:10 
回复 10楼 moonnight
这就是你的问题   感觉很无聊  我觉得与其你弄懂这个问题

还不如把下面两个函数看明白

int addaddfun(int n){return n+=1;}

int funaddadd(int n){int temp = n;n+=1;return temp;}

                                         
===========深入<----------------->浅出============
2012-03-20 14:18
moonnight
Rank: 5Rank: 5
等 级:职业侠客
帖 子:158
专家分:380
注 册:2012-3-17
收藏
得分:0 
回复 11楼 laoyang103
那个问题使我们老师给我说的!
你的第一个函数返回n+1;第二个返回n
2012-03-20 14:24
胜利之神
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2012-3-20
收藏
得分:0 
菜鸟路过!看不懂在说什么?
2012-03-20 15:54
laoyang103
Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19Rank: 19
来 自:内蒙古包头
等 级:贵宾
威 望:19
帖 子:3082
专家分:11056
注 册:2010-5-22
收藏
得分:0 
回复 12楼 moonnight
我是想告诉你 前缀++和后缀++的内部实现方式   

把你代码中的++n全部用第一个函数代替

把n++全部用第二个函数代替  再去看看结果

                                         
===========深入<----------------->浅出============
2012-03-20 15:57
moonnight
Rank: 5Rank: 5
等 级:职业侠客
帖 子:158
专家分:380
注 册:2012-3-17
收藏
得分:5 
回复 14楼 laoyang103
表示这个问题我真知道!
对于
int i=2;
printf("%d,%d",++i,i++);
这个的确要看编译器编译的顺序
2012-03-20 16:24
星辰雁
Rank: 4
等 级:业余侠客
威 望:1
帖 子:93
专家分:275
注 册:2011-9-10
收藏
得分:5 
“++i”与“i++”属于同一优先级,运算次序由结合方向决定。
而在此处,同一级别的运算符在一起执行时,按照从右往左的顺序执行。
 printf("i,i++,i++ = %d,%d,%d\n",i,i++,i++)
所以执行到i++时i=10;此时内存中的i=10;
执行倒数第二i++时,内存i=10,所以结果还为10;
执行到i;刚好仍为10;最终结果如下:
i,i++,i++ = 10,10,10

不要认为CPU运算速度快就 把所有的问题都推给它去做,程序员应该将代码优化再优化,我们自己能做的决不要让CPU做 ,因为CPU是为用户服务的,不是为我们程序员服务的!
2012-03-20 17:29
星辰雁
Rank: 4
等 级:业余侠客
威 望:1
帖 子:93
专家分:275
注 册:2011-9-10
收藏
得分:0 
以上为VC++ 6.0的运行结果;
在TC2.0运行如下:
a = 6, b = 6, c = 6
i,i++,i++ = 12,11,10
13
12
12
13
-12
-13
不好意思,上面说的有点问题倒数第一个i++=10;
倒数第二个为i

不要认为CPU运算速度快就 把所有的问题都推给它去做,程序员应该将代码优化再优化,我们自己能做的决不要让CPU做 ,因为CPU是为用户服务的,不是为我们程序员服务的!
2012-03-20 17:39
星辰雁
Rank: 4
等 级:业余侠客
威 望:1
帖 子:93
专家分:275
注 册:2011-9-10
收藏
得分:0 
不好意思,上面说的有点问题倒数第一个i++=10;
倒数第二个在内存中为i=11;在执行i++;
执行到i是,i在内存中为12;至于在VC上为什么仍显示10;不晓得

不要认为CPU运算速度快就 把所有的问题都推给它去做,程序员应该将代码优化再优化,我们自己能做的决不要让CPU做 ,因为CPU是为用户服务的,不是为我们程序员服务的!
2012-03-20 17:40
杨松松
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:98
专家分:142
注 册:2011-12-3
收藏
得分:0 
还有这种事?眼界大开啊
2012-03-20 19:40
w730333433
Rank: 1
等 级:新手上路
帖 子:3
专家分:0
注 册:2011-9-28
收藏
得分:0 
回复 8楼 C_戴忠意
新手受教了啊
2012-03-20 20:57
快速回复:令初学者头疼的问题,进来瞅瞅
数据加载中...
 
   



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

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