• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            孤星
            孤星
                   我現(xiàn)在還是一名在校的大學(xué)生,不過2006 年我會走出校園,成為社會上的一員,我現(xiàn)在深感到我的計算機專業(yè)知識的不足。所以想通過網(wǎng)上學(xué)習(xí),來提高自身,我也希望有更多的朋友,來一起學(xué)習(xí)C++等系列課程,需心請教!
                   上一次,有人遇到這樣一個問題,也許現(xiàn)在已經(jīng)解決了,但我還是要將這個問題,分析一下,!
            問題是這樣的:

            #include "iostream.h"
             int main( )
            {   int i = 3 ;
                int sum = (i++) + (i++) + (i++);
                cout << sum;

                }
              在VC 6、0  結(jié)果是 16,我認為是這樣的, 在VC里 先將 前兩個i ++  相加,兩次 i++ 為5+5=10 ,再和第三個 i 相加,結(jié)果就是十六了,不知有何高見!
            posted on 2005-12-25 19:44 孤星 閱讀(614) 評論(15)  編輯 收藏 引用
            Comments
            • # re: 初來乍到
              梁宇翔
              Posted @ 2005-12-25 20:27
              這樣寫代碼會被罵的,int sum = (i++) + (i++) + (i++);
              sum的結(jié)果有可能是隨機的。
              如果不是無聊到了極點的話,
              還是不要這樣寫吧。
              這是我的建議:
              int x = i++;
              int sum = x*3;  回復(fù)  更多評論   
            • # re: 初來乍到
              zhy
              Posted @ 2005-12-25 21:52
              不知道你怎么得到的16
              不過事實上是9
              你在cout《i時i為6;
              同意樓上的說法。  回復(fù)  更多評論   
            • # re: 初來乍到
              Ying-Shen
              Posted @ 2005-12-25 22:09
              int sum = (i++) + (i++) + (i++);

              這個中國大學(xué)計算機系老師自認為是C語言中重要的知識點的地方,
              在C++的標準里面就一句the result is compiler specific就結(jié)束了。

              就是這個小地方浪費了每個中國大學(xué)計算機系學(xué)生的時間,并且對計算機編程
              認識造成重大誤導(dǎo)。并且這個錯誤還在一屆屆的延續(xù)下去。。。。。中國計算機教育界的悲哀。。。

                回復(fù)  更多評論   
            • # re: 初來乍到
              huangyi
              Posted @ 2005-12-25 23:26
              如果你的目的是研究vc編譯器的話...
              如果你上面16的說法正確的話(沒試過) 那vc的這種方法似乎有點不人道啊 呵呵  回復(fù)  更多評論   
            • # re: 初來乍到
              hehehe
              Posted @ 2005-12-25 23:44
              the result is compiler specific這句話我喜歡。。。  回復(fù)  更多評論   
            • # re: 初來乍到
              發(fā)
              Posted @ 2005-12-26 10:28
              這個中國大學(xué)計算機系老師自認為是C語言中重要的知識點的地方,
              在C++的標準里面就一句the result is compiler specific就結(jié)束了。

              就是這個小地方浪費了每個中國大學(xué)計算機系學(xué)生的時間,并且對計算機編程
              認識造成重大誤導(dǎo)。并且這個錯誤還在一屆屆的延續(xù)下去。。。。。中國計算機教育界的悲哀。。。

              嚴重同意這個!  回復(fù)  更多評論   
            • # re: 初來乍到
              50米
              Posted @ 2005-12-26 15:04
              呵呵順序點的情況估計不少人都沒有聽過吧,^_^托大了呵呵:)

              下面舉例說明吧呵呵。
              int m=1;
              int n;
              n=m++ + m++;
              請回答結(jié)果是多少?

              正確回答是:不知道!語言沒有規(guī)定它應(yīng)該算出什么,結(jié)果完全依賴具體系統(tǒng)在具體上下文中的具體處理。其中牽涉到運算對象的求值順序和變量修改的實現(xiàn)時刻問題

              a = 4; cout << a++ << a;

              這種東西根本不該寫,討論其效果沒有意義。

              我們知道它是
              (cout.operator <<(a++)).operator << (a);
              的簡寫。先看外層函數(shù)調(diào)用,這里需要算出所用函數(shù)(由加下劃線的一段得到),還需要計算a 的值。語言沒有規(guī)定哪個先算。如果真的先算函數(shù),這一計算中出現(xiàn)了另一次函數(shù)調(diào)用,在被調(diào)函數(shù)體執(zhí)行前有一個順序點,那時a++ 的副作用就會實現(xiàn)。如果是先算參數(shù),求出a 的值4,而后計算函數(shù)時的副作用當(dāng)然不會改變它(這種情況下輸出兩個4 )。當(dāng)然,這些只是假設(shè),實際應(yīng)該說的是:這種東西根本不該寫,討論其效果沒有意義。


              程序語言通常都規(guī)定了執(zhí)行中變量修改的最晚實現(xiàn)時刻(稱為順序點、序點或執(zhí)行點)。程序執(zhí)行中存在一系列順序點(時刻),語言保證一旦執(zhí)行到達一個順序點,在此之前發(fā)生的所有修改(副作用)都必須實現(xiàn)(必須反應(yīng)到隨后對同一存儲位置的訪問中),在此之后的所有修改都還沒有發(fā)生。在順序點之間則沒有任何保證。對C/C++ 語言這類允許表達式有副作用的語言,順序點的概念特別重要。  回復(fù)  更多評論   
            • # re: 初來乍到
              味全每日C++
              Posted @ 2005-12-27 16:55
              不要太苛求語法..
              追求這樣的細節(jié)不利于自己的提高:)  回復(fù)  更多評論   
            • # re: 初來乍到
              LOGOS
              Posted @ 2005-12-27 17:11
              關(guān)于這個問題,我也差異了一下,不過編譯成匯編后,就明白了:這些事情,是編譯器決定的事情.
              ; Line 11
              mov DWORD PTR _i$[ebp], 3
              ; Line 12
              mov eax, DWORD PTR _i$[ebp]
              add eax, DWORD PTR _i$[ebp]
              add eax, DWORD PTR _i$[ebp]
              mov DWORD PTR _sum$[ebp], eax
              mov ecx, DWORD PTR _i$[ebp]
              add ecx, 1
              mov DWORD PTR _i$[ebp], ecx
              mov edx, DWORD PTR _i$[ebp]
              add edx, 1
              mov DWORD PTR _i$[ebp], edx
              mov eax, DWORD PTR _i$[ebp]
              add eax, 1
              mov DWORD PTR _i$[ebp], eax  回復(fù)  更多評論   
            • # re: 初來乍到
              發(fā)咯簌簌
              Posted @ 2005-12-27 19:23
              VC6.0中運算結(jié)果是9。  回復(fù)  更多評論   
            • # re: 初來乍到
              rotcet
              Posted @ 2005-12-31 19:28
              c本身沒有對表達式的求值運算方式做規(guī)定,所以這是編譯器相關(guān)的,這種問題在真實開發(fā)中屬于不良代碼,不可以這樣寫  回復(fù)  更多評論   
            • # re: 初來乍到
              勾來斌
              Posted @ 2006-02-05 11:14
              基本同意梁宇翔和Ying-Shen
              這樣寫程序有誰知道其語義到底是什么
                回復(fù)  更多評論   
            • # re: 初來乍到
              yskin
              Posted @ 2006-02-22 11:48
              我前幾天也看到過,他說的是:
              int sum = (++i) + (++i) + (++i);

              有人說按照c++標準應(yīng)該是18.但是vc6編譯出來是16.還有人說vc7.1出來是18.

              樓主既然記得16,一定是你把程序給記錯了。  回復(fù)  更多評論   
            • # re: 初來乍到
              unknown
              Posted @ 2006-04-19 17:39
              浪費時間  回復(fù)  更多評論   
            • # re: 初來乍到
              JJJ
              Posted @ 2007-09-07 15:06
              浪費時間  回復(fù)  更多評論   
             
            久久久精品一区二区三区| 国产精品久久久久久福利漫画| 国产精品99久久不卡| 久久精品国产99国产精品| 久久久久久青草大香综合精品| 久久久久久免费视频| 久久久久亚洲av无码专区导航 | 精品久久久一二三区| 婷婷综合久久中文字幕蜜桃三电影| 国产精品久久免费| 国产精品99久久久精品无码| 成人精品一区二区久久| 狠狠色丁香久久婷婷综合_中 | 精品一区二区久久| 欧美粉嫩小泬久久久久久久| AV色综合久久天堂AV色综合在| 亚洲国产高清精品线久久| 97久久香蕉国产线看观看| 欧美精品九九99久久在观看| 国产精品久久久久一区二区三区| 久久天天躁狠狠躁夜夜2020一| 久久国产精品二国产精品| www.久久热.com| 久久久久99精品成人片欧美| 久久亚洲精品国产亚洲老地址 | 亚洲另类欧美综合久久图片区| 99久久综合狠狠综合久久止| 99久久精品免费看国产一区二区三区| 久久久99精品成人片中文字幕| 四虎国产精品免费久久久| www.久久精品| 国产精品99久久久久久人| 精品无码久久久久国产| 久久这里只有精品18| 久久久久久午夜成人影院| 亚洲国产精品无码久久久蜜芽| 久久人妻少妇嫩草AV蜜桃| 97视频久久久| 亚洲中文字幕无码一久久区| 久久成人小视频| 亚洲伊人久久大香线蕉综合图片|