陣列與指標(筆記)

2021-10-23 14:45:31 字數 1459 閱讀 6198

陣列和指標的關係

函式引數表中的陣列實際上是指標

sizeof(a) == sizeof(int*)

可以用陣列的運算子進行運算

#include

void

minmax

(int a,

int len,

int*min,

int*max)

;//定義最大值和最小值函式

intmain()

;int min, max;

printf

("main sizeof(a)=%lu\n"

,sizeof

(a))

;//以無符號長整型輸出主函式中的陣列a的大小

printf

("main a=%p\n"

, a)

;minmax

(a,sizeof

(a)/

sizeof

(a[0])

,&min,

&max)

;printf

("a[0]=%d\n"

, a[0]

);printf

("min=%d, max=%d\n"

, min, max)

;return0;

}void

minmax

(int a,

int len,

int*min,

int*max)

//可等價寫為void minmax(int *a, ……)

if(a[i]

>

*max)

}}

四種函式原型等價

int sum(int *ar, int n);

int sum(int *, int);

int sum(int ar, int n);

int sum(int , int);

不是型別等價,在參數列**現,作為函式原型是等價的

陣列變數本身表達位址,所以

int a[10]; int *p=a;

陣列的單元表達的是變數,需要用&取位址

a == &a[0]

運算子可以對陣列做,也可以對指標做

p[0] <==> a[0]

繼上方**

int

*p=&min;

printf

("*p=%d\n"

,*p)

;printf

("p[0]=%d\n"

, p[0]

);

輸出數值相等

號可以對指標做,也可以對陣列做

如a = 25

上方a,寫成*a輸出1000,可以讀也可以寫

實際上,陣列是 const的指標

int b --> int * const b

b是乙個常數,不能被改變,是乙個常量指標

指標與陣列學習筆記

1.指標與位址 取址符,只能應用於記憶體中的物件,即變數和陣列元素 間接定址和間接引用運算子,看下面的 intx 1,y 2,z 10 int ip ip是int型別的指標 ip x 指標ip現在指向x,ip儲存x的位址 y ip y的值現在為1 ip 0 x現在的值是0 ip z 0 指標ip現在...

C語言筆記 指標 指標與陣列

和 可以將指標向前或向後移動 n 個位元組,n 取決於指標的型別在此計算機中占用的位元組數,使用的方法和普通變數一樣。兩個指標相減則可以得到兩指標間的距離,這種運算只有在兩個指標指向同乙個陣列中的元素時候有意義,可以計算出兩個指標指向的元素之間相隔多少個元素 指標也可以使用 等運算子進行比較,但也是...

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

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...