在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

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

            《C與指針》讀書筆記五

            作者: 時間:2016-08-12 來源:網(wǎng)絡(luò) 收藏

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

            本文引用地址:http://www.biyoush.com/article/201608/295453.htm

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

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

              int arrary[10];

              int i;

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

              {

              arrary[i] = i;

              }

              初始化結(jié)束后,在內(nèi)存中存儲如下:

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

              既然數(shù)組通過地址索引使用的,也是地址,那么之間就有天然的共性。所以必定有相同之處。比如我們要實現(xiàn)一個數(shù)組復(fù)制給另外一個數(shù)組。可以使用參照一個產(chǎn)品手冊中提供的示例代碼。

              #include

              #include /* for printf */

              void tst_memcpy (void) {

              char src1 [100] = "opy this string to dst1";

              char dst1 [100];

              char *p;

              p = memcpy (dst1, src1, sizeof (dst1));

              printf ("dst = "%s"n", p);

              }

              作者通過memcpy實現(xiàn)了src1 數(shù)組復(fù)制給dst1。我們可以看一下memcpy函數(shù)的原型說明。

              void *memcpy (

              void *dest, /* destination buffer */

              void *src, /* source buffer */

              int len); /* bytes to copy */

              dest與src都是指針,但是我們傳入?yún)?shù)卻是數(shù)組。p = memcpy (dst1, src1, sizeof (dst1));

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

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

              void *MemCopy( 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];我們?nèi)匀话凑諗?shù)組方式處理了指針。在這本書上,我看到一種表示方法。arrary[2]其實等價于*(arrary+2).也就是

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

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

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



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

            評論


            相關(guān)推薦

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

            關(guān)閉