C指標 指向陣列的指標和指向陣列內部元素的指標

2021-09-29 15:03:02 字數 682 閱讀 7226

int (*p)[5]=&arr;

這裡的&也可以不寫,因為陣列名本身就表示陣列的首位址

int *p = &arr;

int *p= arr;

int *p = &arr[0]

上面三種宣告方式都是合法且等價的

int a[5]

=;int*p=a;

//指向陣列元素的指標,用來訪問陣列內部的元素,單位長度是sizeof(int)

int(

*q)[5]

=&a;

//指向整個陣列的指標,用來訪問緊挨著的不同陣列,單位長度是sizeof(int)*len(arr)

printf

("%d : %d\n"

,p,q)

;//這兩個結果相同,都是a陣列的起始位址,也是a[0]的位址

printf

("%d : %d\n"

,p+1

,q+1);

//這兩個結果不同,第乙個實際值+4,第二個實際值+20

總結:指向陣列的指標的單位長度是陣列的長度,指向陣列內部元素的指標

指標陣列和指向陣列的指標

分析一下三個宣告 1 cat familyone 500 familyone 是乙個500個cat物件組成的陣列 2 cat familytwo 500 familytwo是乙個500個指向的cat的指標組成的陣列 指標陣列 3 cat familythree new cat 500 familyt...

指標陣列和指向指標的指標

今天終於弄明白了,指標陣列,和指向指標的指標的區別。1 include 2 include 3 void main 4 11 for i 0 i 3 i 12 15 一 指標概念 當我們程式如下申明變數 short int i char a short int pi 程式會在記憶體某位址空間上為各變...

C和指標之指標陣列和指向陣列的指標

定義乙個指標陣列,該陣列中每個元素是乙個指標,每個指標指向 就需要程式中後續再定義 int p 10 定義乙個陣列指標,該指標指向含10個元素的一維陣列 陣列中每個元素是int型 int p 10 我們知道二維陣列名是指向第乙個元素的指標,比如int a3 4 這裡a就是指向乙個包含4個元素陣列的指...