中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

數組指針和指針數組和二重指針

發布時間:2020-07-25 22:57:26 來源:網絡 閱讀:543 作者:寒風飄葉22 欄目:編程語言

數組指針和指針數組從字面上來看很糾結,有時候我也搞不清,分不清哪樣的是數組指針,哪樣的是指針數組。這東西就不是靠記憶的,我們采取分析加對比分層剝離的方法分析。

1.概念區別 
1.1.數組指針:定語在前,主語在后。也就是數組的指針。一個指針,它指向一個數組。 
1.2.指針數組:定語在前,主語在后。也就是指針 的數組。一個數組,里面的元素都是指針。

2.指針和數組分別定義的符號 
2.1 int * p; 
分析: 
第一步:找核心,核心是p。 
第二步:逐層剝離,p和*結合是指針。所以int*p;是定義了一個指針

2.2. int p[5]; 
分析: 
第一步:找核心,核心是p。 
第二步:逐層剝離,p和[]結合是數組。所以int p[5];是定義了一個數組。

3.指針數組和數組指針分別定義的符號 
3.1 int * p[5] 
分析: 
第一步:找核心,核心是p。 
第二步:逐層剝離,這時候p先和[]結合還是先和*結合,查優先級表得到[]優先級更高。所以p先和[]結合成為數組。 
第三步:繼續逐層剝離,p[5]這個數組再和*結合 
第四步:得到結果,有一個數組有5個元素,其元素都是指針,即指針數組。

3.2. int (* p)[5]; 
分析: 
第一步:找核心,核心是p。 
第二步:逐層剝離,p和誰結合?小括號優先級更高,所以p先和*結合成為指針, 
第三步:繼續逐層剝離,*p這個指針再和數組結合, 
第四步:得到結果,有一個指針,該指針指向一個數組,即數組指針。

4.一維指針int * 和數組指針int (*)[]的類型匹配問題 
4.1. 
int * p; 
int a[5]; 
p = a; //類型匹配嗎?

別怕,我們來分析 
(1)p和結合是指針,再和int結合,說明,p是一個指向int類型變量的指針,類型為int 
(2)a是數組名,a做右值表示數組首元素的首地址,首元素是int類型,首元素的地址是int*類型。 
(3)得出結論,p和a類型一致。都是int*類型的。

4.2. 
int * p; 
int a[5]; 
p = & a; //類型匹配嗎?

我們再來分析 
(1)p和結合是指針,再和int結合,說明,p是一個指向int類型變量的指針,類型為int 
(2)a是數組名,&a做右值表示整個數組的首地址,也就是一個指向數組的指針,即數組指針,其類型為 int(*)[] 
(3)第三步:得出結論,p和&a類型不匹配,p的類型是int*,&a的類型是int(*)[]

5.二維指針int * * p1;和指針數組 int*p2[5];(實際中用的比較少,如果用到二維指針肯定是和指針數組連用) 
5.1.指針數組 
int *p[5];

分析: 
第一步:p先和[]結合是數組,再和*結合,也就是數組里面的元素都是指針,也就是說,數組中的元素,p0,p1,p2,p3,p4,都是指針,那數組名p是什么類型? 
第二步:數組名p做右值時表示整個數組的首地址,整個數組都是指針,那p就是指針的指針了,即p的類型是指向指針的指針,二重指針。 
重要:二重指針就是指針數組指針 
分析能力是很重要的,比學到知識本身重要,我們永遠不能學完所有的知識,但我們可以提高學習的效率。 學習本身比學習更總要。


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

娱乐| 肥西县| 梅河口市| 崇礼县| 瓮安县| 滁州市| 轮台县| 富锦市| 宁乡县| 沂南县| 通化县| 河间市| 拜城县| 岳阳市| 林口县| 贵德县| 从江县| 上蔡县| 行唐县| 德格县| 保德县| 桃江县| 舟曲县| 松滋市| 剑阁县| 辽源市| 定南县| 安化县| 华坪县| 清苑县| 高要市| 梁平县| 天等县| 金堂县| 淳安县| 龙海市| 阜阳市| 赞皇县| 康乐县| 菏泽市| 淮阳县|