關於C的陣列指標

2021-08-21 06:50:18 字數 1892 閱讀 7633

(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,相當於強制轉換,類似...