• <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>

            no_rain

            C中的side effect 和 sequence point

            wiki 中 sequence point 定義:
            sequence point in imperative programming defines any point in a computer program's execution at which it is guaranteed that allside effects of previous evaluations will have been performed, and no side effects from subsequent evaluations have yet been performed. They are often mentioned in reference to C and C++, because the result of some expressions can depend on the order of evaluation of their subexpressions. Adding one or more sequence points is one method of ensuring a consistent result, because this restricts the possible orders of evaluation.
            簡單的說就是在C/C++中有一些執(zhí)行順序問題,C/C++定義了一些sequence point,在下一個sequence point 執(zhí)行之前必須把前一個執(zhí)行完,但是問題是在一個sequence point 和另一個之間還有一些side effect。由于這些就引出一些有趣的問題。
            條件運算符?:、逗號運算符、邏輯與&&、邏輯或||的每一個操作數(shù)求值之后是Sequence Point。
            問題一:
            f(g( ), h( ) );
            先執(zhí)行誰?答:g( ),h( ) 的順序不確定,它們執(zhí)行之后才執(zhí)行f ( );
            問題二:
            int i = 1;i = i ++;
            結果是? 答:undefined,因為我們知道i++ 是先返回再改變i的值的,那么賦值語句右邊就有了值了,那么就存在這樣的兩種情況:1,i先賦值,再++,那么i現(xiàn)在為2;2,先++,然后賦值,注意此時賦值的內容是還沒++的值,所以i為1;根據(jù)不同的編譯器會得出不同的結果的。
            問題三:
            int a  = 1; a = (++a)+(++a)+(++a);
            結果是?答:undefined,這個的問題是,到底是先把每個++執(zhí)行完之后才進行加法還是先把前兩個先加再執(zhí)行最后一個++?兩者的答案分別是9,11。當然還有其他情況。
            問題四:
            int i = 1int a[10]={0}; a[i++= i;
            答:同問題2.
            所以我們要堅持的原則是:
            在兩個Sequence Point之間,同一個變量的值只允許被改變一次





            posted on 2011-11-14 15:08 is-programmer 閱讀(351) 評論(0)  編輯 收藏 引用 所屬分類: C/C++

            導航

            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345

            統(tǒng)計

            常用鏈接

            留言簿

            隨筆檔案

            文章分類

            文章檔案

            搜索

            最新評論

            閱讀排行榜

            評論排行榜

            亚洲国产精品久久久天堂 | 久久免费精品视频| 狠色狠色狠狠色综合久久 | 久久精品国产亚洲av高清漫画| 亚洲国产精品无码成人片久久| 91精品国产乱码久久久久久 | 久久久久亚洲精品日久生情| 日日躁夜夜躁狠狠久久AV| 99久久精品免费看国产免费| 欧美一区二区久久精品| 91精品国产91久久| 色欲综合久久躁天天躁蜜桃| 久久AAAA片一区二区| 72种姿势欧美久久久久大黄蕉| 久久久综合香蕉尹人综合网| 久久精品aⅴ无码中文字字幕不卡| 激情综合色综合久久综合| 国产精品久久亚洲不卡动漫| 中文精品99久久国产| 久久青青草原精品国产不卡| 久久久久久狠狠丁香| 久久午夜伦鲁片免费无码| 囯产精品久久久久久久久蜜桃| 久久久无码精品亚洲日韩软件| 国产精品丝袜久久久久久不卡| 国产精品久久久久aaaa| 精品久久无码中文字幕| 亚洲AV日韩精品久久久久久久| 久久久久久精品免费看SSS| 久久噜噜久久久精品66| 久久国产成人午夜aⅴ影院| 情人伊人久久综合亚洲| 免费精品99久久国产综合精品| 99久久99这里只有免费费精品| 日韩AV无码久久一区二区| 久久久无码精品亚洲日韩按摩 | 久久久久国产精品嫩草影院| 91久久精品国产成人久久| 国产精品无码久久四虎| 品成人欧美大片久久国产欧美| 99久久精品费精品国产|