C語(yǔ)言 指針與數(shù)組的詳解及區(qū)別
C語(yǔ)言 指針與數(shù)組的詳解及對(duì)比
通俗理解數(shù)組指針和指針數(shù)組
數(shù)組指針:
eg:int( *arr)[10];
數(shù)組指針通俗理解就是這個(gè)數(shù)組作為指針,指向某一個(gè)變量。
指針數(shù)組:
eg:int*arr[10];
指針數(shù)組簡(jiǎn)言之就是存放指針的數(shù)組;
——數(shù)組并非指針&&指針并非數(shù)組
(1)定義一個(gè)外部變量:
eg:int value=10; int *p=&value;
舉例:當(dāng)需要在一個(gè)函數(shù)中用這個(gè)變量時(shí):externa int*p;而非extern int p[];
分析:當(dāng)用:extern int p[];這樣的形式時(shí),其實(shí)是:由于在定義這個(gè)變量的時(shí)候,是作為一個(gè)指針而定義的,則p指向的是 value的地址,當(dāng)p當(dāng)做一個(gè)數(shù)組被引入是,它其實(shí)存放的是value的地址,而并非指向value,導(dǎo)致調(diào)用出現(xiàn)錯(cuò)誤。
(2)定義一個(gè)外部變量:
eg:int arr[10]={0};
舉例:當(dāng)需要在函數(shù)中引入這個(gè)外部變量時(shí):extern int arr[10];而非extern int *arr;
分析:當(dāng)用extern int *arr;這樣的方式進(jìn)行引入是,實(shí)際上這樣是不對(duì)的,在定義這個(gè)變量的時(shí)候是作為一個(gè)整形數(shù)組來(lái)定義的,但是在聲明的時(shí)候是用指針來(lái)聲明的,通過(guò)數(shù)組聲明可以訪問(wèn)到整個(gè)數(shù)組,但是通過(guò)指針實(shí)際上聲明的指針并非指向數(shù)組,而是指向arr[10]數(shù)組中首元素arr[0]地址的指針,導(dǎo)致訪問(wèn)出現(xiàn)問(wèn)題。
——二維數(shù)組與指針的關(guān)系
定義一個(gè)二維數(shù)組arr[3][3],由于二維數(shù)組在內(nèi)存中也是按照順序存儲(chǔ),而并非我們所認(rèn)為的按照矩陣形式存儲(chǔ)的。所以,arr[3]其實(shí)就相當(dāng)與一個(gè)數(shù)組指針;指向arr[0][0],arr[1][0],arr[2][0].
____數(shù)組與指針的其他區(qū)別
(1) 指針保存的是數(shù)據(jù)的地址;
數(shù)組是用來(lái)保存數(shù)據(jù)的。
(2)指針訪問(wèn)數(shù)據(jù)是通過(guò)數(shù)據(jù)的地址進(jìn)行解引用,間接訪問(wèn)的;
數(shù)組訪問(wèn)數(shù)據(jù)是直接的。
(3)指針通常用于動(dòng)態(tài)數(shù)據(jù)結(jié)構(gòu);
數(shù)組用于存放固定數(shù)目而且類型相同的數(shù)據(jù)。
(4)指針通常指向匿名數(shù)據(jù);
數(shù)組通常存放已知的。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
相關(guān)文章
C語(yǔ)言鏈表實(shí)現(xiàn)圖書管理系統(tǒng)
這篇文章主要為大家詳細(xì)介紹了C語(yǔ)言鏈表實(shí)現(xiàn)圖書管理系統(tǒng),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-01-01
C++中overload,override,overwrite的區(qū)別詳細(xì)解析
以下是對(duì)C++中overload,override,overwrite的區(qū)別進(jìn)行了詳細(xì)的分析介紹,需要的朋友可以過(guò)來(lái)參考下2013-09-09
C語(yǔ)言堆結(jié)構(gòu)處理TopK問(wèn)題詳解
TopK問(wèn)題即在N個(gè)數(shù)中找出最大的前K個(gè),這篇文章將詳細(xì)講解如何利用小根堆的方法解決TopK問(wèn)題,文中代碼具有一定參考價(jià)值,快跟隨小編一起學(xué)習(xí)一下吧2022-06-06
C++ Strassen算法代碼的實(shí)現(xiàn)
這篇文章主要介紹了C++ Strassen算法代碼的實(shí)現(xiàn),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-03-03
C語(yǔ)言單向鏈表的表示與實(shí)現(xiàn)實(shí)例詳解
這篇文章主要介紹了C語(yǔ)言單向鏈表的表示與實(shí)現(xiàn),需要的朋友可以參考下2014-07-07

