24小时热门版块排行榜    

CyRhmU.jpeg
查看: 1238  |  回复: 8

lurencyj

木虫 (著名写手)

[求助] ++算符,诡异,求助

CODE:
#include                                                                                                                                                                                                                                                                                                                                                                                 
using namespace std;                                                                                                                                                                                          
                                                                                                                                                                                                            
int main(int argc, char *argv[])                                                                                                                                                                              
{                                                                                                                                                                                                            
        int j = 5;                                                                                                                                                                                            
        cout << j+(++j) << endl;   //gcc和g++编译, 输出为 12, 不理解, 为什么不是:5+6=11
                                                                                                                        
        j = 5;
       cout << j+j+(++j) << endl;   // gcc和g++编译,输出为 16, 理解: 5+5+6
        return 0;                                                                                                                                                                                             
}           

哈哈,见鬼了。。。。
回复此楼

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

很女子很弓虽大
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lt292

金虫 (正式写手)

Holy Shit

jjdg(金币+1): 感谢参与 2012-03-01 00:38:11
不知道,我觉得也诡异
可能是gcc的问题
或者是cout流的问题,我不记得cout的流是怎么样的了,貌似是从右往左,类似递归的一种东西
具体机制忘了
c++就是这样,让人摸不到头脑
记忆中的颜色,慢慢褪去,变成一缕缕的黑丝,最终消失在茫茫的空白里,一去不返```
2楼2012-02-29 18:57:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yalefield

金虫 (文坛精英)

老汉一枚

【答案】应助回帖

感谢参与,应助指数 +1
lurencyj(金币+5): ★★★★★最佳答案 好吧,就这样吧,结案了,结了。 2012-02-29 21:37:59
ben_ladeng(专家考核): 2012-03-01 12:54:08
不要玩这种游戏。
在公司里,写这种代码要先面凤姐壁,再遭雷峰劈,来世白娘子,化作程蝶衣。
3楼2012-02-29 20:38:53
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qinghuoly

木虫 (正式写手)

jjdg(金币+1): 感谢参与 2012-03-01 00:38:44
jjdg:编辑内容 2012-03-01 00:38
c++里边各种匪夷所思的细节。这个算是一般般的。
生命有限,慎学C++

[ Last edited by jjdg on 2012-3-1 at 00:38 ]
天地为帐,日月为灯,风雷为号角,云虹为旗令,山川为阵图,草木为兵卒。运阴阳五行为谋,策古今兴替为略。
4楼2012-02-29 21:44:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zhusheng303

木虫 (小有名气)


xzhdty(金币+1): 欢迎常来程序语言 2012-03-01 16:30:32
你这个问题,很有意思。
我做了一些尝试:
j=5;
int total=0;
total=j+++j;### total=10,即5+5
total=0;
total=j+(++j);### total=12,即6+6
但是
total=j+j+(++j);###total=16;即5+5+6

total=j++j+j+(++j);###total=21;即5+5+5+6
这个问题,就是无解。呵呵
积极面对
5楼2012-03-01 10:48:13
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dubo

金虫 (著名写手)

引用回帖:
3楼: Originally posted by yalefield at 2012-02-29 20:38:53:
不要玩这种游戏。
在公司里,写这种代码要先面凤姐壁,再遭雷峰劈,来世白娘子,化作程蝶衣。

6楼2012-03-01 11:45:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

dubo

金虫 (著名写手)

优秀版主


我也测试了,发现VS2010条件下的结果竟然跟给g++的结果不一样
7楼2012-03-01 12:00:29
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lurencyj

木虫 (著名写手)

引用回帖:
4楼: Originally posted by qinghuoly at 2012-02-29 21:44:07:
c++里边各种匪夷所思的细节。这个算是一般般的。
生命有限,慎学C++

其实,C里面的printf我也试过,结果是一样的。并不是只有C++里面的++,--才这样。

gcc编译。
很女子很弓虽大
8楼2012-03-01 18:12:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zxh3311_cn

铁虫 (小有名气)

c语言中乱呀,不要玩火自焚
9楼2012-03-02 11:21:21
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 lurencyj 的主题更新
信息提示
请填处理意见