陣列指標與指標陣列

2021-09-17 18:32:10 字數 1895 閱讀 8809

是不是傻傻分不清陣列指標與指標陣列?請耐心看完這篇部落格,或許可以幫助你理解指標陣列與陣列指標。

//定義乙個整型的一維陣列

//方式1:不指定元素個數,直接進行初始化,陣列的大小由初始化數字個數確定

int array=

;//方式2:指定元素個數,同時進行初始化。若初始化個數《元素個數 ,其餘元素為

int array[10]

=;

//定義乙個3行4列整型的二維陣列

//方式1:定義二維陣列,直接以大括號的形式初始化

int array[3]

[4]=

,,};

//方式2:當有初始化引數時,可以不指定第一維的大小

int array[

4]=,

,};//方式3:當有初始化引數時,可以不指定第一維的大小

int array[

4]=;

//想要一次宣告兩個指標變數,容易犯錯。以下例子,ptr1是指標變數,ptr2是int型別

int* ptr1,ptr2;

//此時,可以使用typedef將int* 宣告為一種型別

typeder int

* intptr;

//這裡ptr1,ptr2都是int *型別

intptr ptr1,ptr2;

指標陣列:它是乙個陣列,裡面的每個元素都是指標。

模擬記憶:指標陣列,重點在於陣列。可以與其他幾種陣列模擬記憶:

tips: [ ]比*優先順序高

//定義乙個指標陣列

char

* ptrarr=

;//標準main函式,帶引數 char* ar** 也是指標陣列

intmain

(int argc,

char

* ar**[

])

陣列指標:它是指標,指向乙個陣列的指標。

tips:陣列指標,指向一維陣列的整個陣列,而不是首元素位址。

陣列型別:本質是一種型別,與int、char…類似。基本形式是: 型別[規模]

//將int[10]型別陣列,重新命名為ptrarr

typedef

int ptrarr[10]

;

3.3.1 先定義陣列型別,根據型別定義指標變數
//定義陣列型別

typedef

int ptrarr[10]

;//根據型別定義陣列指標

ptrarr* ptrarr =

null

;//定義 乙個int[10]型別的陣列變數arr

int arr[10]

=;//使陣列指標ptrarr指向arr

ptrarr =

&arr;

3.3.2 先定義陣列指標型別,根據型別定義變數
//和指標陣列寫法很類似,多了()

//() 和 優先順序一樣,從左往右

//()有指標,它是乙個指標,

//指向陣列的指標,它有typedef,所以它是乙個陣列指標型別

typedef

int(

*ptrarr)[10

];ptrarr ptrarr;

//陣列指標變數

int arr[10]

=;ptrarr =

&a;

指標與陣列,指標陣列 陣列指標

int a 10 print n a p,a p a,a print n a 1 p,a 1 p a 1,a 1 a做乙個指標,步長為4,指向乙個元素,a做乙個指標,步長為40,指向乙個維陣列 int b 3 4 print n b p,b p,b p b,b,b print n b 1 p,b 1...

陣列 指標陣列與陣列指標

一 陣列型別 int a 10 printf a d,a 1 d n a,a 1 printf a d,a 1 d n a,a 1 輸出結果 2 陣列元素的首位址是常量,不能修改,這是為了釋放記憶體空間所必需的,否則找不到釋放記憶體空間的首位址了 3 定義乙個陣列型別 定義陣列型別的格式如下 typ...

指標陣列與陣列指標

1.指標陣列 指標陣列中每乙個元素都是乙個指標,也既是存放字串的首位址。所以指標陣列適合處理若干個長度不等的字串。定義的一般形式為 型別說明符 指標陣列名 陣列長度 例如 int p 3 宣告乙個陣列,指標陣列p,由3個int型別指標變數元素組成 從運算子的優先順序分析,由於 的優先順序大於 所以p...