陣列名 陣列名取址 指標

2021-08-15 08:15:15 字數 939 閱讀 5723

cout << &(foo[0]) << endl;//以上三個輸出均相同

cout << &(foo[1]) << '\n'<

int vv[2][3] = ;

cout << vv << endl;

cout << vv + 1 << endl; //步長是乙個維度的大小

cout << *vv + 1 << endl << endl;//步長為乙個元素的大小

int(*p)[3] = &(*vv);//&(vv[0])

int(*pp)[2][3] = &(vv); *pp<=>vv

cout << *pp << endl;//輸出vv的位址,*pp等價於vv

cout << (*pp)[1][2] << endl;

cout << **pp << endl;//輸出*vv的位址,即第一維的首位址,**pp等價於*vv

cout << (**pp)[1] << endl; //<=>(*vv)[1]<=>vv[0][1]

cout << ***pp << endl;//輸出第一維首元素的值

cout << *vv[1] << endl;//優先順序高於* <=>vv[1][0]

陣列名和陣列名的取址

關於陣列名和指標的區別 推薦看這兩篇文章 示例 char a 3 輸出10進製位址 輸出 a 為 2686777 a 為 2686777 a是陣列名,編譯器處理時相當於陣列首元素的位址 a是乙個指向陣列的指標,值為陣列的位址,等於陣列首元素的位址 輸出 a 為 1 a 為 1 a 為 2686777...

陣列名和陣列名取位址

在c中,在幾乎所有使用陣列的表示式中,陣列名的值是個指標常量 也就是陣列第乙個元素的位址。它的型別取決於陣列元素的型別 如果它們是int型別,那麼陣列名的型別就是 指向int的常量指標 在以下兩種場合下,陣列名並不是用指標常量來表示,就是當陣列名作為sizeof操作符和單目操作符 的運算元時。siz...

陣列名和陣列名取位址

1 int a 10 2 int p a 3 int q 10 a 第二個為指向陣列的指標.a只是a 0 的位址,a 1就是a 1 的位址了,a是整個a 10 的首位址,是以整個陣列為角度來看,雖然它與a 0 的值相同,但是 a 1就已經增加了10個int型別的位元組的長度了.1 include 2...