C語言指標學習筆記一

2021-07-22 16:40:49 字數 918 閱讀 1739

一、指標陣列和陣列指標的區別

指標陣列:是乙個陣列,但是陣列裡儲存的資料型別是指標;

陣列指標:是乙個指標,但是指標的型別是指向乙個陣列;

int  *array[4];//定義了乙個有4個int*資料型別的陣列

int (*p)[4];      //定義了乙個具有4個int資料型別的陣列的指標;

初始化:

int *array[4]=;

int  ab[4]=;

int (*p)[4]=ab;

注意:優先順序:()>>*

二、指標陣列和陣列的區別

char  *array1[4]=;

char  array2[4][10]=;

區別:1、array1裡面的字串儲存在rom區;array2一般儲存在ram區;因此array1裡的字串內容不能改變;

2、array1陣列裡面存的是字串首位址,因此共占用ram=4*4;array2陣列整個放到ram區,占用大小為ram=4*10;

三、指標和二維陣列

int   array[3][2]=;

array表示整個陣列首位址,即array[0]的位址,即array[0][0]的位址;他們值是相同的;

*array表示第一行,第乙個元素位址,即array[0]的位址,即array[0][0]的位址;他們值是相同的;

*(array+1)和*array+1區別:

*(array+1)表示第二行,第乙個元素位址;*array+1表示第一行,第二個元素位址;

四、陣列名和指標區別

char array=;

char *p=array;

array是乙個指標常量,不能夠自身++和--;

p是乙個指標變數,可以進行自身++和--運算;

注:要想得到陣列大小,sizeof只能傳遞array,不能傳遞p;

c語言指標學習筆記

example 1 int a,b,p,q p a p a p q b p p a 錯誤,因為p實際上是乙個位址,而a是乙個整型值 p q 錯誤,因為這句話的意思是 將位址q指向的單元的值賦給位址p。而實際上p是乙個位址,是不能存值得 p a 錯誤 注意,如果這樣定義了 p,那麼 p表示位址 指標 ...

C 語言指標學習筆記

前敘 原先對c語言的學習,對指標有恐懼感.當c語言學到一定的程度的時候,再學習指標有種水到渠成的感覺。對指標變數的定義包括三個內容 1 指標型別說明,即定義變數為乙個指標變數 2 指標變數名 3 變數值 指標 所指向的變數的資料型別 一般是這樣的 型別說明符 變數名 int p 這個小星星號 表示這...

C語言指標學習筆記

假設我們定義乙個指標p。那麼會經常使用到三個符號 1,p 2,p 3,p 我們知道,p是乙個指標變數的名字,表示此指標變數指向的記憶體位址,如果使用 p來輸出的話,它將是乙個16進製制數。而 p表示此指標指向的記憶體位址中存放的內容,一般是乙個和指標型別一致的變數或者常量。而我們知道,是取位址運算子...