<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 牛人業(yè)話 > 《C與指針》讀書筆記二

          《C與指針》讀書筆記二

          作者: 時(shí)間:2016-07-21 來源:網(wǎng)絡(luò) 收藏

            關(guān)于變量的解引用在該書中有另外一種說法----“間接訪問”。我認(rèn)為“間接訪問”比較能更好的表達(dá)*Point實(shí)際含義。我不知道英文版中是怎么描述的,但是這種翻譯方法更能表達(dá)的物理含義。在我的同事中“解引用”說法比較流行。“間接訪問”徹底表達(dá)了變量和指針內(nèi)容的意義。

          本文引用地址:http://www.ex-cimer.com/article/201607/294356.htm

            通過以下語句可以簡單了解指針的意義。

            int a = 112;

            int b = -1;

            float c = 3.14;

            int *PointA ;

            float *PontB;

            PointA = &a;

            PontB = &c;

            通過一下內(nèi)存模型來理解,就特別方便。

            PointA = &a; 是使PointA指向a變量的地址,PointA的地址為0x101 02,值為0x100 00。*PointA表達(dá)了對(duì)0x100 00地址的訪問,所以是“間接訪問”。

            除了強(qiáng)調(diào)指針“間接訪問”,指針可以用于算數(shù)運(yùn)算。這在初級(jí)入門的書本中是不介紹的。其實(shí)指針?biāo)銛?shù)運(yùn)算也有很大的應(yīng)用。

            int a[10];

            int *Point;

            Point = &a[0];

            Point ++;

            Point +=6;

            Point = &a[0]; 是將數(shù)組a的第一個(gè)元素的地址賦給Point,與Point = a;完全等價(jià)的。數(shù)組的名稱代表了數(shù)組的起始地址。圖解如下:

            Point++;執(zhí)行結(jié)束后,0x101 02地址內(nèi)容為0x100 00,Point存入的地址為a[0]的地址。如果* Point間接訪問是a[0]的值。 Point +=6;執(zhí)行結(jié)束后,0x101 02地址內(nèi)容為0x100 06,如果* Point間接訪問是a[6]的值。

            通過這里了解,就可以得出指針在傳遞大量參數(shù)時(shí)所體現(xiàn)出的效率非常高。因?yàn)橹灰獙數(shù)組的地址和長度傳遞給工具函數(shù)即可。這里的“工具”函數(shù)可以理解為加工處理數(shù)據(jù)的函數(shù),比如隊(duì)一組數(shù)組排序的函數(shù)。最常見的書冒泡排序。

            void bubbleSort( int sort[], unsigned char len )

            {

            char i,j;

            int temp;

            len -= 2;

            for( i =len; i>=0; i--)

            {

            for( j =0; j<=i; j++)

            {

            if( sort[j+1] < sort[j])

            {

            temp = sort[j];

            sort[j]=sort[j+1];

            sort[j+1]=temp;

            }

            }

            }

            }

            在bubbleSort函數(shù)中,使用了sort即是地址。Len即書排序的數(shù)據(jù)。調(diào)用方法如下:

            bubbleSort( Tarrary, 5);

            只需要一個(gè)指針傳送一個(gè)地址,和一個(gè)長度,完成了對(duì)Tarrary數(shù)組的排序。



          關(guān)鍵詞: C 指針

          評(píng)論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();