指標變數的加減,以指標所指向的型別空間為單位進行偏移
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.兩個指標相加減 兩指標必須指向同一變數!否則運算沒有意義的...