如果pa指向陣列中的某個元素,那麼pa+1將指向下乙個元素,pa+i指向下i個元素。所以,若果pa指向a[0],那麼*pa其實就是a[0],*(pa+1)就是a[1],*(pa+i)就是a[i]。根據這個思路,我們可以使用指標來訪問陣列。
01
#include
02
int
main(
int
argc,
char
*argv)
03
;
05
int
wait, length, i;
06
length =
sizeof
(score) /
sizeof
(score[0]);
07
for
(i = 0; i < length; i++)
08
11
scanf
(
"%d"
, &wait);
12
}
程式輸出:
01
76
02
85
03
90
04
67
05
59
06
79
07
82
08
95
09
91
10
65
陣列下標與指標關係很密切。執行語句 pa = &a[0] 後,pa 和 a 就具有相同的值了,並且 *pa=a[0]。實際上c語言在計算陣列下標時也是使用指標來完成的。下標與指標其實是等價的。
當把乙個陣列名傳遞給乙個函式的時候,實際上傳遞的是該陣列的第乙個元素的位址。所以,陣列名引數必須是乙個指標。
計算字串長度的程式可以寫成以下:
view source
print?
1
int
strlen
(
char
*s)
2
s 是指標,也就是乙個變數,對它進行自增是合法的。
C語言指標和指標陣列的使用
2 指標的大小是固定的 32位平台下是4位元組,64位平台下是8位元組 3 指標 指標變數 也是乙個變數,用來儲存位址的變數,4 指標也有型別。有整形指標,字元指標,陣列指標,結構體指標,函式指標等等。整形指標 int a 10 int p a p 20 則a的值,通過p指向a,通過a的位址改變了a...
C語言指標陣列和陣列指標
初學者總是分不出指標陣列與陣列指標的區別。其實很好理解 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...
C語言指標陣列和陣列指標
初學者總是分不出指標陣列與陣列指標的區別。其實很好理解 指標陣列 首先它是乙個陣列,陣列的元素都是指標,陣列佔多少個位元組由陣列本身決定。它是 儲存指標的陣列 的簡稱。陣列指標 首先它是乙個指標,它指向乙個陣列。在32 位系統下永遠是佔4 個位元組,至於它指向的陣列佔多少位元組,不知道。它是 指向陣...