|
|||||||||||
| 技術(shù)交流 | 電路欣賞 | 工控天地 | 數(shù)字廣電 | 通信技術(shù) | 電源技術(shù) | 測控之家 | EMC技術(shù) | ARM技術(shù) | EDA技術(shù) | PCB技術(shù) | 嵌入式系統(tǒng) 驅(qū)動編程 | 集成電路 | 器件替換 | 模擬技術(shù) | 新手園地 | 單 片 機 | DSP技術(shù) | MCU技術(shù) | IC 設(shè)計 | IC 產(chǎn)業(yè) | CAN-bus/DeviceNe |
請問a=5 (++a)+(++a)+(++a)為何等于22 |
| 作者:ronaldoisi 欄目:新手園地 |
| 2樓: | >>參與討論 |
| 作者: NE5532 于 2006/10/11 18:50:00 發(fā)布:
a的原值多少來著? |
|
| 3樓: | >>參與討論 |
| 作者: 香水城 于 2006/10/11 19:01:00 發(fā)布:
斗膽回答:應該結(jié)果是21,算出22是因為算錯了 已在cosmic的C環(huán)境下驗證! |
|
| 4樓: | >>參與討論 |
| 作者: ronaldoisi 于 2006/10/11 20:06:00 發(fā)布:
無奈的新手 main ( ) { int a = 5 ; printf ( "%d\n" , ++a + ++a + ++a ) ; a = 5 ; printf ( "%d\n" , ( ++a )+ (++ a) +(++a)) ; return 0 ; } 結(jié)果都是22 阿 |
|
| 5樓: | >>參與討論 |
| 作者: computer00 于 2006/10/11 20:09:00 發(fā)布:
盡量不要用這樣看起來頭暈的語句。 |
|
| 6樓: | >>參與討論 |
| 作者: ronaldoisi 于 2006/10/11 20:16:00 發(fā)布:
謝謝 經(jīng)常潛水,經(jīng)?碿omputer00大哥幫助新人 您的回答倒確是如此,謝謝 |
|
| 7樓: | >>參與討論 |
| 作者: heyunhuan 于 2006/10/12 8:30:00 發(fā)布:
結(jié)果是21啊! 本人通過TC2.0幫你調(diào)試,結(jié)果顯示是21。你好好試試看。 就象computer00說過的一樣,“盡量不要用這樣看起來頭暈的語句! |
|
| 8樓: | >>參與討論 |
| 作者: thw 于 2006/10/13 1:54:00 發(fā)布:
用的啥編譯器啊,告他去 |
|
| 9樓: | >>參與討論 |
| 作者: 樓上的 于 2006/10/13 16:07:00 發(fā)布:
× a=8+7+6 準沒錯的。 |
|
| 10樓: | >>參與討論 |
| 作者: zhugjbest 于 2006/10/14 15:24:00 發(fā)布:
應該是21 這個都是應付考試的題目了 現(xiàn)實中有誰這樣用啊,別鉆牛角尖 |
|
| 11樓: | >>參與討論 |
| 作者: NE5532 于 2006/10/14 15:59:00 發(fā)布:
寫這種代碼出來是跟自己過不去。 |
|
| 12樓: | >>參與討論 |
| 作者: 音樂樂樂 于 2006/10/14 22:03:00 發(fā)布:
無聊的語句啊,呵呵,實際編程不會出現(xiàn)的 即使是常用的語句,能用括弧表示出優(yōu)先級的就盡量用括弧表示出來 |
|
| 13樓: | >>參與討論 |
| 作者: zpcom 于 2006/10/14 23:18:00 發(fā)布:
zhugjbest兄說的是真 道理 不用去管這些跟自己過不去的式子,,就算要弄明白這個語句也不要用這些來練習啊。。。實際的、有用的才是專研的。。。那些用不著的就不要管了,,太多技術(shù)的東西要去弄,哪來這么多精力去做這些呢???~~ |
|
| 14樓: | >>參與討論 |
| 作者: sx0001 于 2006/10/20 10:51:00 發(fā)布:
不同的編譯器處理方法不一樣 不同的編譯器處理方法不一樣,有的編譯器是按照6+7+8的算法,而有的編譯器會是8+8+8,依賴于你的編譯環(huán)境. 就是有點不太明白,這22是怎么算出來的? |
|
| 15樓: | >>參與討論 |
| 作者: yuands 于 2006/10/26 22:54:00 發(fā)布:
VC和GCC中的結(jié)果是22 VC和GCC中的結(jié)果是22 編譯器把前兩個++a放在同一個地址了,所以結(jié)果是7+7+8=22 在Keil中結(jié)果是21 在VC中 int a=5; int b=(a++)+(a++)+(a++); b的值為15. 還是按照常規(guī)來寫程序,否則可能給自己找麻煩。 |
|
| 16樓: | >>參與討論 |
| 作者: buqibushe 于 2006/11/12 10:11:00 發(fā)布:
同意sx0001 編譯器不同,它的結(jié)合性就會不同,得出的結(jié)果自然不同,當然最好不要這樣做,可以分行多寫幾條語句代替,可讀性增強!!!! |
|
| 17樓: | >>參與討論 |
| 作者: xwj 于 2006/11/12 13:52:00 發(fā)布:
真是無聊的問題,不同編譯器絕對是不同的結(jié)果 |
|
| 18樓: | >>參與討論 |
| 作者: spig20 于 2006/11/12 15:01:00 發(fā)布:
暈。! 干嗎和自己過不去呢??? 我們學習一門語言目的就是要會用!。 不需要去轉(zhuǎn)牛角尖。。。 |
|
| 19樓: | >>參與討論 |
| 作者: xiumy 于 2006/11/13 13:27:00 發(fā)布:
個人感覺應該是22 記得當時在學C的時候,就曾經(jīng)遇到過類似的題目,都是為了做題而出的題目,而在實際編程中應盡量避免這樣書寫。 |
|
| 20樓: | >>參與討論 |
| 作者: yangbo5326 于 2006/11/13 14:36:00 發(fā)布:
回答 1,a=5; (++a)+(++a)+(++a) ////++a是先加后賦值,第一次++a ,結(jié)果是6, a=6; 再次++a,結(jié)果是7,a=7; 再次++a,結(jié)果是8,a=8; 最終結(jié)果是6+7+8=21; 2.a=5; (a++)+(a++)+(a++) ////a++是先賦值后加,第一次結(jié)果6,a=5; 再次a++,結(jié)果是6,a=5; 再次a++,結(jié)果是6,a=5; 最終結(jié)果是18 |
|
| 21樓: | >>參與討論 |
| 作者: eeproom 于 2006/11/13 18:10:00 發(fā)布:
中國教育的縮影 考試就是考你這些,實際上沒人這樣用的~~除非想?yún)⒓訃H亂碼大賽。 |
|
|
|
| 免費注冊為維庫電子開發(fā)網(wǎng)會員,參與電子工程師社區(qū)討論,點此進入 |
Copyright © 1998-2006 m.58mhw.cn 浙ICP證030469號 |