在c語言和c++語言中,陣列元素全為指標的陣列稱為指標陣列。
一維指標陣列的定義形式為:「型別名 *陣列識別符號[陣列長度]「。
例如,乙個包含了10個元素的一維指標陣列的定義:int *scores[10]。
指標陣列中的每乙個元素均為指標,int *scores[10]的含義為: scores[0], scores[1]...scores[i] 的值均為指標,指標所指向的元素型別為int。
乙個簡單的宣告方式為
在c語言函式中,出現上面的**,意味著在記憶體中開闢了一塊區域,這塊區域的大小可以容納10個指標。此時scores陣列中的10個元素是未初始化的, 在某些系統中是null(0), 在某些系統上是無意義的位址。
可以在對指標陣列進行宣告的同時,初始化陣列中的內容。
在上面的例子中, a~k是一些整數,scores是乙個int指標陣列,共有10個元素,分別存放了 a~k這10個整形變數的指標.
指標陣列中的第i個元素可以通過下列方式獲取: scores[i], 由於指標陣列中存放的是指標, 因此我們獲取到的數值,實際上是乙個位址。 例如scores[0] 實際上是 a 這個變數的記憶體位址。 而 *scores[i] 是 這個位址對應的數值, 也即 變數 a的值。
因為scores陣列中存放的是位址,所以直接對 scores[i]進行修改,修改的是scores[i]指向的位址。
將下列**存為 parray.c, 並且編譯、執行。
C語言教學 一 一維陣列與指標
一維陣列和指標 對於一位陣列和指標是很好理解的 一維陣列名 對於這樣的一維陣列 int a 5 a作為陣列名就是我們陣列的首位址,a是乙個位址常量 首先說說常量和變數的關係,對於變數來說,用箱子去比喻再好不過了,宣告乙個變數就宣告乙個箱子,比如我們開闢出乙個蘋果型別的箱子,給這個變數賦值就是把盛放蘋...
陣列,指標,指標陣列,陣列指標
指標是在32位系統下佔四個位元組,64位系統下佔八個位元組的一種型別,指標指向的內容可以是常量,變數,函式,結構體,指標本身,陣列,等等.一級指標 一級指標常常在函式傳參時使用,可傳的引數有一維陣列,常量指標,函式指標等等都可以 但我們要注意不要在函式中,通過改變形參的指向來達到改變實參指向的效果,...
指標, 指標的指標, 陣列, 指標陣列, 陣列指標
指標 int a 10 int p a 指標的指標 int b 20 int p b int p2p p 簡單陣列 int c 10 整數陣列,含有10個整數元素 也就是說每乙個元素都是整數 指標陣列 int p 10 指標陣列,含有10個指標元素 也就是說每乙個元素都是指標 陣列指標 int p ...