搜索
编程论坛
→
开发语言
→
『 C语言论坛 』
→ 一个简单程序,我运行的结果和理论不一致,大家分析问题在哪?
标题:
一个简单程序,我运行的结果和理论不一致,大家分析问题在哪?
只看楼主
编程风
等 级:
新手上路
帖 子:2
专家分:0
注 册:2012-10-28
第
61
楼
得分:0
我试了下,是3 2 4 3啊。跟你书上的没错阿
2012-10-29 23:52
编程风
等 级:
新手上路
帖 子:2
专家分:0
注 册:2012-10-28
第
62
楼
得分:0
我试了下,是3 2 4 3啊。跟你书上的没错阿
2012-10-29 23:52
超级口水哥
等 级:
论坛游民
帖 子:31
专家分:46
注 册:2012-10-30
第
63
楼
得分:0
回复 2楼 无情屠神
请教您为什么您的电脑上运行结果和我们不一样啊
2012-10-30 20:00
李梦杰
等 级:
新手上路
帖 子:3
专家分:0
注 册:2012-10-30
第
64
楼
得分:0
你是在VC++6.0里运行的吧 你们的教材估计是讲的TC 如果是前者就是3 2 3 3
2012-10-30 22:28
橡皮孩子
等 级:
论坛游民
帖 子:23
专家分:29
注 册:2011-12-13
第
65
楼
得分:0
这个问题比较复杂!printf("%d %d %d %d\n",++i,--i,i--,i++); 3 2 3 3
printf("%d",++j);
printf("%d",--j);
printf("%d",j--);
printf("%d\n",j++);
4 3 3 2
这两个的答案是不一样的!printf内如果只有一个参数是一个答案,有两个参数是一个答案,就出现上面的情况了!应该和编译器有关系!记住最简单的,最基本的就好了!绝对够用,要是底层的东西就得好好研究了。我用的是vc6.0
2012-10-31 22:24
李云龙
等 级:
新手上路
帖 子:7
专家分:8
注 册:2012-10-25
第
66
楼
得分:0
我感觉应该是软件的问题,理论上输出应该是3,2,4,3。不过我得vc输出的也是3233
2012-11-01 10:15
tomcaroline
等 级:
新手上路
帖 子:3
专家分:0
注 册:2012-9-26
第
67
楼
得分:0
随编译器不一样改变
2012-11-02 21:38
hkexiao
等 级:
新手上路
帖 子:3
专家分:1
注 册:2011-12-26
第
68
楼
得分:0
不同编译器有不同,要知道i++或i--是分号前的语句完成后才做的,而++i或--i是立刻执行的,而且微软的编译器printf()是从右向左的做的,所以结果,你自己再思考吧,希望对你有帮助。至于教材,还是看看你教材默认是在哪个编译器下运行的结果吧
2012-11-02 22:40
lu1512111454
等 级:
新手上路
帖 子:8
专家分:7
注 册:2012-10-11
第
69
楼
得分:0
......
2012-11-03 08:54
冰冻零点
来 自:西安电子科技大学
等 级:
论坛游侠
帖 子:81
专家分:136
注 册:2012-9-18
第
70
楼
得分:0
这里的逗号都是分割符,不是逗号运算符。这应该是个副作用和顺序点的问题吧,看编译器自己的了。
好好学习,天天向上
2012-11-03 13:35
103
7/11页
2
3
4
5
6
7
8
9
10
11
参与讨论请移步原网站贴子:
https://bbs.bccn.net/thread-366100-1-1.html
关于我们
|
广告合作
|
编程中国
|
清除Cookies
|
TOP
|
手机版
编程中国
版权所有,并保留所有权利。
Powered by
Discuz
, Processed in 1.499214 second(s), 7 queries.
Copyright©2004-2025, BCCN.NET, All Rights Reserved