C语言 指针数组和数组指针区别 - C语言零基础入门教程
目錄
- 一.簡(jiǎn)介
- 1.數(shù)組
- 2.指針
- 3.指針和數(shù)組區(qū)別
- 二.指針數(shù)組和數(shù)組指針區(qū)別
- 1.指針數(shù)組
- 2.數(shù)組指針
- 三.猜你喜歡
零基礎(chǔ) C/C++ 學(xué)習(xí)路線推薦 : C/C++ 學(xué)習(xí)目錄 >> C 語(yǔ)言基礎(chǔ)入門
一.簡(jiǎn)介
1.數(shù)組
數(shù)組中的每個(gè)元素都有一個(gè)序號(hào),這個(gè)序號(hào)從 0 開始,稱為下標(biāo)index,例如,a[0] 表示第 1 個(gè)元素,a[3] 表示第 4 個(gè)元素。數(shù)組是一個(gè)整體,它的內(nèi)存是連續(xù)的,內(nèi)存示意圖:
2.指針
指針很靈活,它可以指向任意類型的數(shù)據(jù)。指針的類型說(shuō)明了它所指向地址空間的內(nèi)存,以下是有效的指針聲明:
int *p; /* 一個(gè)整型的指針 */ double *p; /* 一個(gè) double 型的指針 */ float *p; /* 一個(gè)浮點(diǎn)型的指針 */ char *p; /* 一個(gè)字符型的指針 */注意:不要忘記在指針類型和變量名中間還有一個(gè) * 號(hào),沒有這個(gè) * 號(hào),只是定義了一個(gè)普通變量,這也是普通變量聲明和指針聲明的區(qū)別之一;
3.指針和數(shù)組區(qū)別
指針和數(shù)組區(qū)別這里不再繼續(xù)啰嗦,可以直接參考文章:指針和數(shù)組區(qū)別
二.指針數(shù)組和數(shù)組指針區(qū)別
可能不少小伙伴很懵逼,又是指針數(shù)組又是數(shù)組指針的,指針數(shù)組和數(shù)組指針區(qū)別?? 傻分不清??
1.指針數(shù)組
指針數(shù)組:它實(shí)際上是一個(gè)數(shù)組,數(shù)組的每個(gè)元素存放的是一個(gè)指針類型的元素。
int* arr[5]; //優(yōu)先級(jí)問題:[]的優(yōu)先級(jí)比*高 //說(shuō)明arr是一個(gè)數(shù)組,而int*是數(shù)組里面的內(nèi)容 //這句話的意思就是:arr是一個(gè)含有5個(gè)int*的數(shù)組int* arr[5] 表示由 5 個(gè)一維數(shù)組構(gòu)成,也可以理解為是一個(gè)二維數(shù)組,如下圖:
示例代碼如下:
char a[3][8]={"gain","much","strong"}; //二維數(shù)組,由三個(gè)一維數(shù)組夠成 char *n[3]={"gain","much","strong"}; //指針數(shù)組,由三個(gè)一維數(shù)組夠成2.數(shù)組指針
數(shù)組指針:它實(shí)際上是一個(gè)指針,該指針指向一個(gè)數(shù)組。
int (*arr)[5]; //由于[]的優(yōu)先級(jí)比*高,因此在寫數(shù)組指針的時(shí)候必須將*arr用括號(hào)括起來(lái) //arr先和*結(jié)合,說(shuō)明arr是一個(gè)指針變量 //這句話的意思就是:指針arr指向一個(gè)大小為5個(gè)整型的數(shù)組。int(*arr)[5] 表示指針 arr 指向一個(gè)大小為 5 個(gè)整型的數(shù)組,如下圖:
示例代碼如下:
/******************************************************************************************/ //@Author:猿說(shuō)編程 //@Blog(個(gè)人博客地址): www.codersrc.com //@File:C語(yǔ)言教程 - C語(yǔ)言 指針數(shù)組和數(shù)組指針區(qū)別 //@Time:2021/06/19 08:00 //@Motto:不積跬步無(wú)以至千里,不積小流無(wú)以成江海,程序人生的精彩需要堅(jiān)持不懈地積累! /******************************************************************************************/ int a[4][5];int (*p)[5]=a;//指針p指向一個(gè)大小為5個(gè)整型的數(shù)組 *(p+i)是一維數(shù)組a[i][0]的地址; (p+2)+3表示a[2][3]地址(第一行為0行,第一列為0列); *(*(p+2)+3)表示a[2][3]的值;三.猜你喜歡
未經(jīng)允許不得轉(zhuǎn)載:猿說(shuō)編程 ? C語(yǔ)言 指針數(shù)組和數(shù)組指針區(qū)別
總結(jié)
以上是生活随笔為你收集整理的C语言 指针数组和数组指针区别 - C语言零基础入门教程的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python 文件读写操作-Python
- 下一篇: Python bytearray/byt