标题:printf()输出到底是怎么回事。
只看楼主
qq819073730
Rank: 2
等 级:论坛游民
帖 子:50
专家分:10
注 册:2013-1-6
结帖率:90%
已结贴  问题点数:10 回复次数:17 
printf()输出到底是怎么回事。
/* Note:Your choice is C IDE */
#include "stdio.h"
void main()
{
    int i=8;
    printf("%d,%d,%d,%d,%d,%d",++i,--i,i++,i--,-i++,-i--);
}

为什么输出的不是9,7,8,8,-8,-8。
不懂啊。
搜索更多相关主题的帖子: void include choice 
2013-04-22 19:13
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
得分:0 
是9,7,9,7,-7,-9吧。。。。

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2013-04-22 19:17
qq819073730
Rank: 2
等 级:论坛游民
帖 子:50
专家分:10
注 册:2013-1-6
得分:0 
回复 2楼 tremere
不是啊。答案是8,7,8,8,-8,-8   我就是不明白第一个是怎么回事.
2013-04-22 19:19
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
得分:0 
回复 3楼 qq819073730
。。。。我凌乱了。。。

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2013-04-22 19:22
pengyancai
Rank: 2
等 级:论坛游民
帖 子:57
专家分:46
注 册:2013-3-4
得分:0 
是因为printf()函数的原因,因为如果参数列表包括多个实参,那么对实参的求值的顺序并不确定的,有的系统按自左至右顺序求实参的值,有的自右至左。
所以建议楼主可以定义六个变量输出。
2013-04-22 19:27
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
得分:0 

懂了。。你这段程序里面,++i,--i,i++,i--,-i++,-i--
这些不是独立的。看错了。。
是9,7,8,8,-8,8,-8。。
你看错了吧


极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2013-04-22 19:30
鈴蘭
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:48
专家分:145
注 册:2013-4-1
得分:5 
ptintf输出是从右边开始的  printf("%d,%d,%d,%d,%d,%d",++i,--i,i++,i--,-i++,-i--);即先执行顺序为-i--,-i++,i--,i++,--i,++i

菜鸟一枚,回复如有错误,还望谅解!
2013-04-22 19:31
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
得分:0 
回复 5楼 pengyancai
艾玛,今天抽风了。。。我做出来的跟楼主一样,我又摁错了

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2013-04-22 19:32
tremere
Rank: 6Rank: 6
来 自:火星
等 级:侠之大者
帖 子:223
专家分:432
注 册:2013-3-11
得分:0 
我都没注意过这个,哎呀,要学习学习

极品菜鸟,来学习啦,啦啦啦啦啦啦啦。。。
2013-04-22 19:33
qq819073730
Rank: 2
等 级:论坛游民
帖 子:50
专家分:10
注 册:2013-1-6
得分:0 
回复 9楼 tremere
...
2013-04-22 19:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-405155-1-1.html




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

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