| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 594 人关注过本帖
标题:一个关于printf的问题
只看楼主 加入收藏
cai85204550
Rank: 1
等 级:新手上路
帖 子:40
专家分:4
注 册:2011-5-14
结帖率:100%
收藏
已结贴  问题点数:10 回复次数:12 
一个关于printf的问题
int x=6;
printf("%d,%d,%d",x,x++,--x);
为什么输出结果是 5 5 5
搜索更多相关主题的帖子: 问题 
2011-06-15 21:58
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:1 
咋又是不明白 ++ -- 呢。去看看书就明白了,看 i++ 和 ++i 的区别
2011-06-15 22:08
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:5 
请不要滥用++--!

—>〉Sun〈<—
2011-06-15 22:13
故事一不帅
Rank: 1
等 级:新手上路
帖 子:16
专家分:3
注 册:2011-6-15
收藏
得分:3 
应该是6 5 5才对。
“--x”先是x=x-1=5,然后输出x,再把x值赋给"x++",先输出x的值=5,然后再进行x=x+1=6,然后把得到的值赋给“x++“前面的x,x=6。
2011-06-15 22:15
ansic
Rank: 14Rank: 14Rank: 14Rank: 14
来 自:恍惚窈冥
等 级:城市猎人
帖 子:1543
专家分:5367
注 册:2011-2-15
收藏
得分:1 
不好说! 楼主不要陷在这里!

善人者,不善人之师;不善人者,善人之资。不贵其师,不爱其资,虽智大迷。
2011-06-15 22:17
cai85204550
Rank: 1
等 级:新手上路
帖 子:40
专家分:4
注 册:2011-5-14
收藏
得分:0 
回复 4楼 故事一不帅
但是我用vc6.0编了下得出结果是 5 5 5
2011-06-15 22:17
TAAAAB
Rank: 7Rank: 7Rank: 7
来 自:湖南
等 级:黑侠
威 望:1
帖 子:243
专家分:635
注 册:2011-5-29
收藏
得分:0 
我也觉得应该6,5,5才对,有谁能详细说一下为什么是5,5,5嘛

人有多懒,编程就有多难。
2011-06-15 22:18
voidx
Rank: 12Rank: 12Rank: 12
来 自:邯郸
等 级:火箭侠
帖 子:1250
专家分:3538
注 册:2011-4-7
收藏
得分:0 
啊对,没看仔细,这个又是编译器依赖了
2011-06-15 22:19
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
以下是引用cosdos在2011-6-15 22:13:47的发言:

请不要滥用++--!

以下是引用cosdos在2011-6-15 22:13:47的发言:

请不要滥用++--!


一个语句中,多次对一个变量++或--,或该变量在语句出现多次,容易造成混淆,代码不易阅读。

—>〉Sun〈<—
2011-06-15 22:22
cosdos
Rank: 9Rank: 9Rank: 9
来 自:ShangHai
等 级:蜘蛛侠
威 望:6
帖 子:2109
专家分:1385
注 册:2007-6-19
收藏
得分:0 
printf("%d,%d,%d",x,x++,--x);

分析如下:
    因为,c语言规定,函数参数必须在传递给函数之前计算出值,然后把值传递给函数。
    所以,先计算出x的值,在计算过程中,前缀在传递给函数前计算,而后缀在执行该语句后计算。
    x出现多次,我们很难确定其值,只有编译器才知道。不是所有编译器都这样,谁准确知道编译器会怎么做。
--------------------------------------
如果出现2次前缀--,情况又会如何?

[ 本帖最后由 cosdos 于 2011-6-15 22:52 编辑 ]

—>〉Sun〈<—
2011-06-15 22:29
快速回复:一个关于printf的问题
数据加载中...
 
   



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

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