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

            MyMSDN

            MyMSDN記錄開發(fā)新知道

            a Swap program

            #include "stdio.h"
            #include "stdlib.h"
            
            void foo(int *a, int *b) {
                *a = *a + *b;
                *b = *a - *b;
                *a = *a - *b;
            }
            int main(void) {
                int a = 1, b = 2, c = 3;
                foo(&a, &b);
                foo(&b, &c);
                foo(&c, &a);
                printf("%d, %d, %d", a, b, c);
                return EXIT_SUCCESS;
            }

            foo看似繚亂卻是一個(gè)交換函數(shù):

            從最后一次做*a和*b的位置開始向上:

            也就是*b = *a - *b;擴(kuò)展為*b = (*a + *b) - *b展開就是*b = *a;也就是將*a的值賦給了*b。(注意到在此之前*b從未改變過(guò))

            *a = *a - *b(這時(shí)候不能用上一行的結(jié)論,因?yàn)?a曾經(jīng)改變過(guò)了)擴(kuò)展為*a = (*a + *b) – *a 也就是*a = *b,這里*b是指原始的*b,而不是上一行的結(jié)論,至此就交換完畢。

            可以注意到,這里并沒有使用臨時(shí)變量。所以這是一個(gè)不需要臨時(shí)變量的交換方法。不過(guò)這種方法只支持支持operator+和operator-的數(shù)值計(jì)算(基本上只能用在整數(shù)上,因?yàn)閷?duì)浮點(diǎn)的操作可能涉及到舍入的問題)

            而且這個(gè)方法還有一個(gè)缺陷,就是對(duì)數(shù)值邊界的判斷,比入MAX_INT+MAX_INT就溢出了,所以它存在一定的局限性。

            posted on 2009-02-24 18:29 volnet 閱讀(273) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C/C++

            特殊功能
             
            久久精品国产亚洲av水果派| 亚洲人AV永久一区二区三区久久| 亚洲伊人久久精品影院| 亚洲欧美日韩中文久久| 亚洲国产精品久久久久网站| 久久亚洲精品无码观看不卡| 欧美精品久久久久久久自慰| 国产成人香蕉久久久久| 久久男人Av资源网站无码软件| 国产高潮久久免费观看| 久久精品国产亚洲AV无码麻豆| 日韩久久久久中文字幕人妻 | 97精品久久天干天天天按摩| 91性高湖久久久久| 日韩人妻无码精品久久免费一| 久久激情五月丁香伊人| 久久99精品久久久久久| 亚洲精品tv久久久久久久久| 久久久青草青青国产亚洲免观| 精品一区二区久久| 久久国产精品99久久久久久老狼| 一本色道久久HEZYO无码| 亚洲人成无码www久久久| 精品人妻伦九区久久AAA片69 | 久久久久久久久波多野高潮| 久久艹国产| 久久亚洲国产成人精品无码区| 国产精品免费看久久久香蕉| 国产成人综合久久精品尤物| 精品国产一区二区三区久久| 精品国产VA久久久久久久冰| 久久久久亚洲精品天堂| 久久久久亚洲AV无码麻豆| 国产成人精品综合久久久久 | 午夜精品久久久久久| 久久国产视频99电影| 久久久久久毛片免费看| 久久夜色撩人精品国产小说| 国产一区二区久久久| 思思久久99热只有频精品66| 中文字幕人妻色偷偷久久|