<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

《C與指針》讀書(shū)筆記二

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

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

本文引用地址:http://dyxdggzs.com/article/201607/294356.htm

  通過(guò)以下語(yǔ)句可以簡(jiǎn)單了解指針的意義。

  int a = 112;

  int b = -1;

  float c = 3.14;

  int *PointA ;

  float *PontB;

  PointA = &a;

  PontB = &c;

  通過(guò)一下內存模型來(lái)理解,就特別方便。

  PointA = &a; 是使PointA指向a變量的地址,PointA的地址為0x101 02,值為0x100 00。*PointA表達了對0x100 00地址的訪(fǎng)問(wèn),所以是“間接訪(fǎng)問(wèn)”。

  除了強調指針“間接訪(fǎng)問(wèn)”,指針可以用于算數運算。這在初級入門(mén)的書(shū)本中是不介紹的。其實(shí)指針算數運算也有很大的應用。

  int a[10];

  int *Point;

  Point = &a[0];

  Point ++;

  Point +=6;

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

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

  通過(guò)這里了解,就可以得出指針在傳遞大量參數時(shí)所體現出的效率非常高。因為只要將a數組的地址和長(cháng)度傳遞給工具函數即可。這里的“工具”函數可以理解為加工處理數據的函數,比如隊一組數組排序的函數。最常見(jiàn)的書(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函數中,使用了sort即是地址。Len即書(shū)排序的數據。調用方法如下:

  bubbleSort( Tarrary, 5);

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



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

評論


相關(guān)推薦

技術(shù)專(zhuān)區

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>