C 中的指標陣列與陣列指標

2021-08-07 04:17:41 字數 1803 閱讀 8630

指標陣列即為包含了多個指標的陣列;而陣列指標指的是指向陣列的指標。

指標陣列中的每個元素都是指標,而多維陣列是陣列的陣列。因此,指標資料與多維陣列類似。指標陣列歸根到底也屬於陣列,因此,其定義的方式為

(型別名

) 識別符號

[陣列維數]

只不過此時的型別名為指標型別。例如

(int*)myarray[2];
定義了乙個包含2

個元素的陣列,該陣列中的每個元素都是指向整數的指標。

圖1 指標陣列

陣列指標的本質是指標,因此其定義的格式與指標類似

型別名 (*識別符號)

例如

int (*mypoint)[2];
需要從內向外讀取mypoint

的宣告,首先讀取括號內的內容,

mypoint

是乙個指標,接下來向外讀取,該指標指向的型別是

int[2]

,即mypoint

是乙個指向含有

2個整形元素的陣列的指標。

圖2 陣列指標

使用陣列指標和整形指標遍歷二維陣列的**是

int(*array_point)[2];

int *int_point;

int array_matrix[2][2] = ;

for (array_point = array_matrix; array_point < array_matrix + 2; ++array_point)

}

使用auto

可以代替陣列指標。

auto

是型別說明符,在

c++11

中引入的新標準。使用

auto

型別說明符,可以讓編譯器替我們分析表示式所屬的型別。例如,

auto item = val1+val2;
此處編譯器將根據val1

和val2

相加的結果來推斷

item

的型別,如果

val1

和val2

是int

,則item

的型別是

int;如果

val1

和val2

的型別是

double

,則item

的型別也是

double

。因此,使用auto遍歷二維陣列,可以避免使用陣列指標和整形指標

int array_matrix[2][2] = ;

auto array_auto = array_matrix;

auto point_auto = *array_auto;

for (; array_auto < array_matrix + 2; ++array_auto)

}

C 指標陣列與陣列指標

說實話,c語言真的很讓人蛋疼,它不像物件導向的語言,我們重心在設計程式上。而使用c語言,你不僅要考慮程式的設計,你還要考慮很多他的使用細節,不然一不小心你怎麼死的都不知道。但是,個人感覺,c語言的魅力是其他任何語言都比不了的!繼續看。陣列指標 範例 typedef int aint5 5 typed...

C 指標陣列與陣列指標

陣列指標 也稱行指標 陣列指標 a pointer to an array,即指向陣列的指標 定義 int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣...

指標陣列與陣列指標 C

關於陣列指標 1 對於二維陣列,初始化時,必須指定乙個引數 int a 3 int a 這樣是不允許的,因為要確定指標移動一步要走多遠。對於一位陣列int a 這樣可以。也就數說只有乙個引數位置可以不用設定引數。2 int p 3 必須加上小括號,這代表乙個指向陣列的指標,數字3,代表每一列有三個數...