是不是傻傻分不清陣列指標與指標陣列?請耐心看完這篇部落格,或許可以幫助你理解指標陣列與陣列指標。
//定義乙個整型的一維陣列
//方式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...