陣列和指標

2022-06-22 19:12:09 字數 419 閱讀 4367

陣列和指標並不是相等的。為了說明這個概念,請考慮下面這兩個宣告:

int    a[5];

int    *b;

a和b能夠互換使用嗎?它們都具有指標值,它們都可以進行間接訪問和下標引用操作。但是,它們還是存在相當大的區別。

宣告乙個陣列時,編譯器將根據宣告所指定的元素數量為陣列保留記憶體空間,然後再建立陣列名,它的值是乙個常量,指向這段空間的起始位置。宣告乙個指標變數時,編譯器只為指標本身保留記憶體空間,它並不為任何整型值分配記憶體空間。而且,指標變數並未被初始化為指向任何現有的記憶體空間,如果它是乙個自動變數,它甚至根本不會被初始化。

因此,上述宣告之後,表示式 *a 是完全合法的, 但表示式 *b 卻是非法的。*b 將訪問記憶體中某個不確定的位置,或者導致程式終止。另一方面,表示式 b++ 可以通過編譯,但 a++ 卻不行,因為 a 的值是個常量。

陣列指標和指標陣列

陣列指標 也稱行指標 定義 int p n 優先順序高,首先說明p是乙個指標,指向乙個整型的一維陣列,這個一維陣列的長度是n,也可以說是p的步長。也就是說執行p 1時,p要跨過n個整型資料的長度。如要將二維陣列賦給一指標,應這樣賦值 int a 3 4 int p 4 該語句是定義乙個陣列指標,指向...

陣列指標和指標陣列

一 定義 陣列指標 陣列指標 是指向陣列 首元素的位址的 指標,其本質為指標 這個指標存放的是陣列首位址的位址,相當於2級指標,這個指標不可移動 指標陣列 陣列元素為指標的陣列,其本質為陣列。二 舉例 int a 3 4 這個無需多說,就是乙個 二維陣列 int p 4 就相當於int p 4 它就...

陣列指標和指標陣列

這兩個名字不同當然所代表的意思也就不同。我剛開始看到這就嚇到了,主要是中文太博大精深了,整這樣的簡稱太專業了,把人都繞暈了。從英文解釋或中文全稱看就比較容易理解。指標陣列 array of pointers,即用於儲存指標的陣列,也就是陣列元素都是指標 陣列指標 a pointer to an ar...