C語言 指標與陣列

2021-09-21 14:34:29 字數 832 閱讀 6132

指標變數的加減,以指標所指向的型別空間為單位進行偏移

int a[5];        //則a為int*型別

a指向a[0],a+1指向a[1]

&a 的型別為int(*)[5]        //&a指向乙個一維陣列

訪問陣列單元

下標法:通過a[i]方位某一具體元素

指標法:如果有int * p=a,則通過*(p+i)或*p++進行訪問

指標法:直接通過a進行訪問,如*(a+i),但是不能使用*a++,陣列名不能隨意改變

int a[3][4];        //a的型別為int (*)[4],指向a[0]這個一維陣列

a + 1->a[1];        //位址移動16b

a[0];        // 為一維陣列的陣列名,指向a[0][0]這個元素,a[0]的型別為int *

a[0] + 1->a[0][1];                //位址移動4b

&a 的型別為int(*)[3][4];        // 指向乙個二維陣列

&a + 1;                //加48b

訪問陣列元素

下標法:同一維陣列a[m][n]

指標法:要得到第m行n列的元素,*(a[m]+n)或*(*(a+m)+n)

&a的型別為int(*)[2][3][4]

a指向a[0]這個二維陣列,型別為int(*)[3][4]

a[0]指向a[0][0]這個一維陣列,型別為int(*)[4]

a[0][0]指向a[0][0][0]這個整型,型別為int *

a[0][0][0]即為當前下標法表示的元素,型別為int   

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

初學者總是分不出指標陣列與陣列指標的區別。其實很好理解 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...

C語言指標 指標與陣列

1 指標與一維陣列 2 指標與二維陣列 3 指標陣列與陣列指標 指標裡面最難的一種就是指標與陣列了,對於指標和二維陣列來說這裡面的關係比較複雜。牽涉到編譯器的原理和編譯過程。1 指標與一維陣列 指標是指向乙個記憶體的位址,一維陣列的陣列名代表一塊記憶體 這個陣列 的首位址,和陣列首元素的位址一樣,但...

C語言指標 指標與陣列

一 指標的運算 指標可以進行三種運算 1.指標加上整數 如果指標p指向陣列a i 那麼指標p j 指向a i j 前提是a i j 存在!2.指標減去整數 如果指標p指向陣列a i 那麼指標p j 指向a i j 前提 a i j 存在!3.兩個指標相加減 兩指標必須指向同一變數!否則運算沒有意義的...