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

            c/c++中指針學(xué)習(xí)的兩個(gè)絕好例子-C/C++指針學(xué)習(xí)

            對(duì)于眾多人提出的c/c++中指針難學(xué)的問(wèn)題做個(gè)總結(jié):

              指針學(xué)習(xí)不好關(guān)鍵是概念不清造成的,說(shuō)的簡(jiǎn)單點(diǎn)就是書(shū)沒(méi)有認(rèn)真看,指針的學(xué)習(xí)猶如人在學(xué)習(xí)饒口令不多看多學(xué)多練是不行的,下面是兩個(gè)很經(jīng)典的例子,很多書(shū)上都有,對(duì)于學(xué)習(xí)的重點(diǎn)在于理解*x和x的理解,他們并不相同,*x所表示的其實(shí)就是變量a本身,x表示的是變量a在內(nèi)存中的地址,如果想明白可以輸出觀察cout<<*x"|"x;,當(dāng)定義了int *x;后對(duì)x=&a的理解的問(wèn)題。仔細(xì)閱讀和聯(lián)系下面的兩個(gè)例子我想指針問(wèn)題就不是難點(diǎn)了!

            #include <stdio.h>

            main()
            {
            int a,b; /* 定義a,b兩個(gè)整形變量用于輸入兩個(gè)整數(shù) */
            int *point_1,*point_2,*temp_point; /* 定義三個(gè)指針變量 */
            scanf("%d,%d",&a,&b); /* 格式化輸入a,b的值 */
            point_1=&a; /* 把指針變量point_1的值指向變量a的地址 */
            point_2=&b; /* 把指針變量point_2的值指向變量b的地址 */
            if (a<b)
            {
                 temp_point=point_1; /* 這里的temp_point是用于臨時(shí)存儲(chǔ)point_1的值也就是變量a的地址的 */
                 point_1=point_2; /* 把point_2的值賦予point_1 */
                 point_2=temp_point;
                 /* 由于point_1的值已經(jīng)改變無(wú)法找到,利用前面臨時(shí)存儲(chǔ)的也就是temp_point找回原point_1的值賦予point_2,打到把point_1和point_2值對(duì)換的目的*/
            }
            printf("%d,%d",*point_1,*point_2); /* 利用*point_1和*point_2也就是分辨指向b和a的方法把值顯示自愛(ài)屏幕上 */
            }

            /* 此題需要注意和了解是的此法并沒(méi)有改變變量a,b的值只是利用指針變量分別存儲(chǔ)a和b的地址,然后再把那兩個(gè)指針變量的值對(duì)換一下其實(shí)就是存儲(chǔ)在
            指針變量里面a與b的地址對(duì)換,在利用*point_1和*point_2的方式把調(diào)換后的值顯示出來(lái)這里的*point_1實(shí)際就是a,此中算法并非真的改變a,b的值,而是
            利用指針進(jìn)行地址交換達(dá)到大小排序的目的.
            */



            #include <stdio.h>

            main()
            {
            int a,b; /* 定義a,b兩個(gè)整形變量用于輸入兩個(gè)整數(shù) */
            int *point_1,*point_2; /* 定義三個(gè)指針變量 */
            scanf("%d,%d",&a,&b); /* 格式化輸入a,b的值 */
            point_1 = &a; /* 把指針變量point_1的值指向變量a的地址 */
            point_2 = &b; /* 把指針變量point_2的值指向變量b的地址 */
            compositor(point_1,point_2); /* 調(diào)用自定義的排序涵數(shù),把a(bǔ),b的地址傳遞給point_1和point_2 */
            printf("%d,%d",a,b); /* 打印出a,b的值 */
            }

            static compositor(p1,p2)
            int *p1,*p2; /* 定義形式參數(shù)p1,p2為指針變量 */
            {
            int temp; /* 建立臨時(shí)存儲(chǔ)變量 */
                 if (*p1<*p2) /* 如果*p1<p2,注意這里的*p1和*p2其實(shí)就是a和b */
                 {
                     temp = *p1; /* 利用變量temp用于臨時(shí)存儲(chǔ)*p1和就是a的值 */
                     *p1 = *p2; /* 將*p1的值也就是a的值換成*p2的值也就是b的值,等價(jià)于a=b */
                     *p2 = temp; /* 將*p2的值也就是temp的值等價(jià)于b=temp */
                 }
            }

            /* 注意:此題與上題不同的是,直接改變了a于b的值達(dá)到真實(shí)改變的目的 */

            posted on 2010-06-21 23:02 lhking 閱讀(238) 評(píng)論(0)  編輯 收藏 引用


            只有注冊(cè)用戶(hù)登錄后才能發(fā)表評(píng)論。
            網(wǎng)站導(dǎo)航: 博客園   IT新聞   BlogJava   博問(wèn)   Chat2DB   管理


            導(dǎo)航

            <2010年6月>
            303112345
            6789101112
            13141516171819
            20212223242526
            27282930123
            45678910

            統(tǒng)計(jì)

            常用鏈接

            留言簿

            隨筆檔案

            搜索

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

            国产成人香蕉久久久久| 久久男人Av资源网站无码软件| 久久综合精品国产二区无码| 无码人妻精品一区二区三区久久| 99久久99久久| 青青久久精品国产免费看| 国产偷久久久精品专区| 久久精品成人免费网站| 伊人久久亚洲综合影院| 伊人色综合久久| 国产成人精品综合久久久| 久久99国产精品久久99果冻传媒| 性做久久久久久久久浪潮| 国产精品久久久久影视不卡| 欧美日韩精品久久久免费观看| 国产V亚洲V天堂无码久久久| 欧美激情精品久久久久久久九九九 | 一级做a爰片久久毛片人呢| 亚洲欧美精品一区久久中文字幕| 99久久99久久| 日本强好片久久久久久AAA| 国产精品久久久久久久人人看| 国产精品狼人久久久久影院| 国产精品久久精品| 香蕉久久永久视频| 久久99精品久久久久久不卡| 久久久噜噜噜久久中文字幕色伊伊| 久久综合狠狠综合久久97色| 色综合久久中文色婷婷| 国产精品视频久久| 久久丫精品国产亚洲av| 欧美喷潮久久久XXXXx| 亚洲AV无码一区东京热久久 | 亚洲国产精品嫩草影院久久| 国产免费久久精品99久久| 久久久久亚洲av无码专区导航| 久久久久久无码Av成人影院| 久久精品国产亚洲AV不卡| 亚洲人成无码久久电影网站| 色综合合久久天天给综看| 亚洲国产婷婷香蕉久久久久久|