陣列和指標

2021-07-25 21:37:30 字數 1073 閱讀 8244

一、陣列

1.陣列是由同一種資料型別的元素系列構成的。其格式為 資料型別 陣列名[元素的個數] 。

2.當數值數目少於陣列元素數目時,多餘的陣列元素會被初始化為0,即未被初始化的元素則被設定為0。當初始化列表中專案的個數大於陣列大小時,編譯器會報錯。在對陣列初始化時如果多次對乙個元素進行初始化,則最後一次有效。

3.對陣列使用const,即只對陣列進行讀取數值而不寫入數值。這樣程式會把每個元素當做是常量,而不能在對其進行賦值。

4.在對陣列進行賦值時。不允許把整個陣列當做乙個整體來進行賦值。同時陣列的計數是從0開始的,即a[0]、a[1]....

二、陣列和指標

1.陣列名同時也是該陣列首元素的位址,即flizny == &flizny[0]

2.dates+2 == &date[2] dates 即陣列名相當於&date[0] dates + 2相當於在首元素加上2後對應元素的位址即&date[2]

3.兩個表示式ar[i]和*(ar+i)的意義是等價的,即表示陣列中第i個元素的值。

三、指標和多維陣列

int zippo[4][2];表示乙個四行兩列的陣列,也相當於是陣列的陣列。

1.zippo的首元素包含兩個int的陣列,所以zippo是包含了兩個int的陣列的位址。即zippo是位址的位址。對其需要取兩次值才可以得到其對應的數值(**zippo)。

對其取兩次值得形式可以兩次使用間接運算子(*)來實現,或兩次使用方括號()(也可以採用一次*和一次來實現)。

2.如果只對其取一次值(*zippo),則只會獲得首元素的位址,相當於*zippo = &zippo[0][0];

3.int (*pz)[2];和int *pax [2];兩者是不同的。 前者表示pz指向乙個包含2個int值的陣列,後者表示pax是由兩個指向int值得指標所構成的陣列。

4.在宣告n維陣列的指標時,除了最左邊的方括號可以留空外,其他都需要填寫數值。

int sum(int ar,int rows);是錯誤的

int sum(int ar[4],int rows);是正確的。這是因為首方括號表示這是乙個指標,而其他方括號描述的是所指向物件的資料型別。

陣列指標和指標陣列

陣列指標 也稱行指標 定義 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...