陣列指標(也稱行指標)
int (*p)[n];
()優先及高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p+1時,p要跨過n個整型資料的長度。
int a[3][2]
int (*p)[2]
p = a;
p++; 該語句執行後,也就是p=p+1,p跨過a[0]指向了a[1]
所以陣列指標也稱指向一維陣列的指標,亦稱行指標。
檢視下例demo:
#includeint main(),,};
int (*p)[2] = a;
int row = sizeof(a)/sizeof(a[0]);
int col = sizeof(a[0])/sizeof(a[0][0]);
printf("row = %d ,col = %d\n",row,col);
int i = 0, j = 0;
for(i = 0;i< row;i++)
printf("\n");
}int *p1 = p[0];
printf("%d,%d",*p1,*p1+1);
p1 = p[1];
printf("%d,%d",*p1,*p1+1);
return 0;
}
指標陣列
定義int *p[n]
優先順序高,先與p結合成為乙個陣列,再由int *說明這是乙個整型指標陣列,它有n個指標型別的陣列元素。這裡執行p+1時,則p指向下乙個陣列元素,
#includeint main(),,};
int *p[3];
int row = sizeof(a)/sizeof(a[0]);
int col = sizeof(a[0])/sizeof(a[0][0]);
int i = 0, j = 0;
for(i = 0; i < row;i++)
printf("\n");
}return 0;
}
C語言指標陣列與陣列指標
初學者總是分不出指標陣列與陣列指標的區別。其實很好理解 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...
陣列指標與指標陣列區別
前提 陣列指標是指標 指標陣列是陣列 示例 int p1 5 和 int p1 5 前者為指標陣列 後者為陣列指標。涉及運算符號優先順序 陣列下標比取值運算子 的優先順序更高。自右向左結合。先結合陣列下標.先談指標陣列 int p1 5 指向整型資料的指標變數。0 1 2 3 4 int 結論 指標...
C語言指標 指標與陣列
1 指標與一維陣列 2 指標與二維陣列 3 指標陣列與陣列指標 指標裡面最難的一種就是指標與陣列了,對於指標和二維陣列來說這裡面的關係比較複雜。牽涉到編譯器的原理和編譯過程。1 指標與一維陣列 指標是指向乙個記憶體的位址,一維陣列的陣列名代表一塊記憶體 這個陣列 的首位址,和陣列首元素的位址一樣,但...