标题:关于"++"的问题
只看楼主
terisevend
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-6-2
 问题点数:0 回复次数:15 
关于"++"的问题
先来看下面一段简单代码:

#include <iostream>

using namespace std;

int main()
{
int s = 0, p;

p = ++s + ++s + ++s;

cout << p << endl;

system("PAUSE");
return EXIT_SUCCESS;
}//main()

在DEV C++上编译后,输出结果为7,如果只有 ++s + ++s,则输出结果为4.
在Borland C++上编译后,输出结果为9,如果只有 ++s + ++s,输出结果也为4.
由此可以说明,不同的编译器对多个"++"的计算的编译是不同的.

我想问问,为什么Dev C++输出为7,而Borland C++输出的为9.在编译时发生了什么事.谢谢赐教!

还有,我发现了一个问题- -!原来Kaspersky会把所有没有输出指令的程序视为含有恶意代码的程序处理- -!


搜索更多相关主题的帖子: include system return 
2007-06-02 16:19
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 
这个问题以前看到过。

我的理解是,这是种不好的书写方法,避免这样用就行了。
相当于给编译器找麻烦。

Fight  to win  or  die...
2007-06-02 21:30
tancui
Rank: 1
等 级:新手上路
威 望:1
帖 子:63
专家分:0
注 册:2006-11-19
得分:0 

怎么回事啊,不论怎么算也不会那样啊,奇怪

2007-06-02 21:56
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:0 
[CODE]其实说难也不难理解为什么是7
我们看看代码就知道了

movl $0, -12(%ebp) // s=0
movl $0, -8(%ebp) // p=0
addl $1, -12(%ebp) //s=1
addl $1, -12(%ebp) //s=2
movl -12(%ebp), %eax //%eax=2
addl -12(%ebp), %eax //%eax=4
addl $1, -12(%ebp) //s=3
addl -12(%ebp), %eax //%eax=7
movl %eax, -8(%ebp) //p=%eax
[/CODE]

淘宝杜琨
2007-06-02 22:08
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:0 
汇编....

淘宝杜琨
2007-06-02 22:22
aipb2007
Rank: 8Rank: 8
来 自:CQU
等 级:贵宾
威 望:40
帖 子:2879
专家分:7
注 册:2007-3-18
得分:0 

呵呵!


Fight  to win  or  die...
2007-06-02 22:24
terisevend
Rank: 1
等 级:新手上路
帖 子:62
专家分:0
注 册:2007-6-2
得分:0 
汇编看不懂....

2007-06-02 23:25
谁与争疯
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:海南省
等 级:版主
威 望:188
帖 子:15070
专家分:17503
注 册:2007-4-22
得分:0 
在自己知道的情况下,加个()括号区分,是很好的。

论坛是我家灌水靠大家
2007-06-02 23:32
神vLinux飘飘
Rank: 13Rank: 13Rank: 13Rank: 13
来 自:浙江杭州
等 级:贵宾
威 望:91
帖 子:6140
专家分:217
注 册:2004-7-17
得分:0 
神的意志...

淘宝杜琨
2007-06-02 23:35
谁与争疯
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:海南省
等 级:版主
威 望:188
帖 子:15070
专家分:17503
注 册:2007-4-22
得分:0 
神会编程吗?你的神,是哪个国家的?

论坛是我家灌水靠大家
2007-06-02 23:37



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




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

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