<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-08-10 來(lái)源:網(wǎng)絡(luò ) 收藏

  語(yǔ)言編程中應用廣泛。并且與數組有交集。很多情況下數組與結合使用可以事半功倍。我們可以聲明一個(gè)數組,并且將其初始化。

本文引用地址:http://dyxdggzs.com/article/201608/295290.htm

  int arrary[10]={ 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 };

  數組在聲明時(shí)可以同時(shí)初始化。以上語(yǔ)句的結果就是聲明一個(gè)數組,同時(shí)初始化該數組。等價(jià)于以下語(yǔ)句:

  int arrary[10];

  int i;

  for( i = 0; i < sizeof (arrary ); i++ )

  {

  arrary[i] = i;

  }

  初始化結束后,在內存中存儲如下:

  數組是通過(guò)數組名和下標的結合使用的。arrary是數組名,相當于數組的第一個(gè)成員的首地址。下標相當于偏移量。arrary[2]的地址其實(shí)相當于arrary+2*sizeof(int)。int是數據類(lèi)型。在有的系統中是4,在有些系統中是2。在此我們假設int類(lèi)型是4個(gè)字節。

  既然數組通過(guò)地址索引使用的,也是地址,那么之間就有天然的共性。所以必定有相同之處。比如我們要實(shí)現一個(gè)數組復制給另外一個(gè)數組??梢允褂脜⒄找粋€(gè)產(chǎn)品手冊中提供的示例代碼。

  作者通過(guò)memcpy實(shí)現了src1 數組復制給dst1。我們可以看一下memcpy函數的原型說(shuō)明。

  dst1與src1是我們聲明的數組。正因為dst1與src1也是地址,與指針意義完全相同,所以實(shí)現了數組復制。

  memcpy是編譯器提供標準庫函數。我們也可以自己實(shí)現一下,因為是示例,就不過(guò)多考慮安全性問(wèn)題了。

  void *Memopy( void *dest, void *src, int len)

  {

  int i;

  char *temp;

  temp = dest;

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

  {

  temp[i] = src[i];

  }

  return dest;

  }

  temp[i] = src[i];我們仍然按照數組方式處理了指針。在這本書(shū)上,我看到一種表示方法。arrary[2]其實(shí)等價(jià)于*(arrary+2).也就是

  arrary[2] = 2;等價(jià)于*(arrary+2)=2;

  m = arrary[2]; 等價(jià)于m =*(arrary+2);

  熟練以后,如果遇到需要數組復制的,可以自己動(dòng)手實(shí)現。就不使用庫函數了。使用指針傳遞一個(gè)數組,確實(shí)在傳參方面效率提高很多。比如排序,只要傳入數組的首地址和長(cháng)度即可。



關(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>