通過指標應用陣列元素:
(1)下標法,如a[i]形式;
(2)指標法,如*(a+i)或*(p+i)。其中a是陣列名,p是指向陣列元素的指標變數,其初值p=a;
例如:有乙個整數陣列a,有10個元素,要求輸出陣列中的全部元素。
(1)下標法。
#includeint main()
(2)通過陣列名計算陣列元素位址,找出元素的值。
int main()
(3)用指標變數指向陣列元素
#includeint main()
用下表法比較直觀,能直接知道是第幾個元素。使用指標變數是時,要注意指標變數的當前值。
例如:通過指標變數輸出整形陣列a的10個元素。
#includeint main()
總結:指向陣列的指標變數也可帶下標,如p[i]。帶下表的指標變數的含義是:等指標變數指向陣列元素時,指標變數可以帶下標。因為在程式編譯時,對下標的處理方法式轉換為位址的,對p[i]處理成*(p+i),如果p是指向乙個整形陣列元素a[0],則p[i]代表a[i]。但是必須清楚p的當前值是什麼。
設p指向陣列a的首元素(即p=a):
分析;(1)p++; *p;
p++使p指向下一元素a[1]。然後若再執行*p,則得到下乙個元素a[1]的值;
(2)*p++:
由於++和*同優先順序,結合方向自右而左,其等價於*(p++)。先引用p的值,實現*p的運算,然後再使p自增1。
(3)*(p++)與*(++p)
*(p++)先取*p的值,然後再使p加1.
*(++p)先使p加1,再取*p.
若p初值為a(即&a[0]),若輸出*(p++),得到a[0]的值,而輸出*(++p),得到a[1]的值.
(4)++(*p).表示p所指向的元素值加1,如果p=a,則++(*p)相當於++a[0],若a[0]的值是3,則在執行++(*p)後a[0]的值是4,注意:是元素a[0]的值加1,而不是指標p的值家1.
(5)如果p當前指向a陣列中第i個元素a[i],則
*(p--)相當於a[i--],先對p進行「 * 」運算(求p所指向的元素的值),再使p自減。
*(++p)相當於a[++i],先使p自加,在進行「*」運算。
*(--p)相當於a[--i],先使p自減,在進行「*」運算。
通過指標引用陣列
為了說清楚什麼是指標,必須先弄清楚資料在記憶體中是如何儲存的,又是如何讀取的。如果在程式中定義了乙個變數,在對程式進行編譯時,系統就會給這個變數分配記憶體單元。編譯系統根據程式中定義的變數型別,分配一定長度的空間。例如,visual c 為整型變數分配4個位元組,對單精度浮點型變數分配4個位元組。記...
C語言 陣列指標和通過指標引用陣列元素的方法總結
1.陣列指標 即指向陣列的指標 那麼,如何宣告乙個陣列指標呢?int p 10 括號是必須寫的,不然就是指標陣列 10是陣列的大小 拓展 有指標型別元素的陣列稱為指標陣列。2.通過指標引用陣列元素的基本方法 1 小標法 a i 2 指標法 a i 或 p i 或 p i 其中,a是陣列名,p a,即...
陣列 指標 引用
一 指標的概念 指標是記憶體中的位址。1 語法 型別 變數名 這裡的型別是定義了這個指標指向的變數型別。2 指標的運算子 和 1 取位址符 例如 int counta 100 int mm mm counta 假設counta所在位址是2000,這是候m 2000。include void main...