(1)位址
陣列名就是乙個位址,指向乙個陣列的開端。
下面舉幾個例子:
#includeint main()
; int *p = a;
printf("%d\n", p);
printf("%d\n", a);
printf("%d\n", &a[0]);
printf("%d\n", &a[1]);
}
前面說過p是乙個指標指標的作用就是儲存乙個資料的位址
所以第乙個printf將列印輸出a陣列的位址開端,
因為陣列名就是乙個位址,指向乙個陣列的開端,所以第二將列印出a陣列的位址開端
第三個printf將列印陣列的第乙個元素的位址 結果應該與前兩個相同。
為了對比我將第四個printf列印出第二個元素的位址以作比較。
從實驗結果我們可以看出前三個位址都是一樣的,都是陣列的開始位址,而最後乙個是陣列的第二個元素,因為是整型資料,位址加4。
(2)具體值
我們前面說 *這個符號的作用就是取乙個位址的值,如*p就是取位址為p的值
那麼我們根據前面就可以得出
*p=a[0];
*(p+1)=a[1];
*(p+2)=a[2];
*(p+3)=a[3];
*(p+n)=a[n];
那麼0[a] 1[a] 2[a]...n[a]又代表了什麼
0[a]=a[0] 1[a]=a[1] n[a]=a[n];
為什麼會這樣呢 對比上方**可知
n[a]=*(n+a) *(n+a)=*(a+n) *(a+n)=a[n];
所以n[a]=a[n];
(3)例子
假如現在有乙個學生期末考試有n門成績(門數由自己決定),請將他的各個科目的成績輸入,並利用指標的方法遍歷陣列,求該學生的最高成績,最低成績,總分,平均分。
方法一:
指標一定要注意指標的初始化,尤其是迴圈後,p++,指標位址的改變
C語言 關於指標陣列和陣列指標
一 指標陣列 按照語文的理解,我們知道指標陣列的中心詞是陣列,而指標是用來修飾陣列的定語。事實上在c語言中也確實是這樣,指標陣列,就是乙個陣列,乙個存放指標的陣列。它常用於指向若干字串,這樣使字串處理更加靈活方便。下面我們通過幾個例子來理解一下指標陣列 int arr1 10 char arr2 4...
C 中關於指標陣列
汗乙個,今天上午因為 define n 5 後面加上雙引號了,找了半天錯誤 字面意思來講,陣列裡面每乙個元素都是指向某一型別物件的指標 由於指標陣列物件每乙個元素的型別為t t a new t 所以,指向這個陣列物件的元素物件的指標的型別為t 如下 include stdafx.h include ...
C中關於指標陣列的用法
1 typedef char ap 5 2 3 ap foo char p 49 10int main void 11 結果是 onalamb 分析過程 typedef char ap 5 宣告了乙個指向型別為char元素個數為5的一維陣列。foo s 1 由於返回的型別是ap,相當於強制轉換,類似...