cout 陣列 二維陣列的位址

2021-10-11 06:51:39 字數 967 閱讀 9412

c++ primer3.6多維陣列ia的例子,發現對於ia,和ia[0],兩者數值相同,產生了疑問,經過查閱相關資料,特此記錄。

一、關於二維(高維陣列的位址)

二維陣列ia

int
對二者(ia,ia[0])的數值是否相同進行驗證

int main()

, ,

};cout << ia << endl;

cout << ia[0] << endl;

return 0;

}

執行結果

二、總結

之前個人錯誤的理解:

ia為二維陣列首元素的位址,ia[0]為二維陣列首元素的元素值。

由於ia為二維陣列,因此ia為整個二維陣列的首位址,ia[0]為二維陣列第一行的首位址,兩者在 數值上相同,但意義不同,其中ia為int (*)[4]型別,而ia[0]為int *型別。

三、例子

以下例子加深對此問題的理解:

int main()

, ,

};int(*p)[4] = &ia[2];

cout << p << endl;

cout << *p << endl;

cout << **p << endl;

return 0;

}

執行結果

p為二維陣列ia第二個元素首位址,*p為二維陣列第二行的首位址,**p為二維陣列第二行的第乙個元素值。

因個人能力有限,如有問題,煩請指正。

二維陣列位址

二維陣列定義 int arr 2 3 typedef p arr 3 p q for size t i 0 i 2 i printf n value 1,address 010ff770 value 2,address 010ff774 value 3,address 010ff778 value ...

二維陣列和陣列元素位址

二維陣列和陣列元素的位址 先給出一下定義 int p,a 3 4 1.二維陣列a由若干個以為陣列組成 像上面定義的陣列a,我們可以理解為由a 0 a 1 a 2 三個元素組成,而他們有分別是乙個一維陣列 通過我們前面學過的知識可以知道,陣列名是乙個位址,其值是第乙個元素的位址,而此位址的基型別就是陣...

二維陣列位址的關係

int a 3 4 指標所指向的資料型別加1 那麼位址就會加上資料型別對應的位元組數 例如 a 0x12ff18 a 1 0x12ff48 a指向的是有 12個元素的二維陣列,占有 30h位元組的位址空間 a 0 0x12ff18 a 0 1 0x12ff28 a 0 指向的是有 4個元素的一維陣列...