C++二维数组名的再探索
生活随笔
收集整理的這篇文章主要介紹了
C++二维数组名的再探索
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
#include <iostream>int main()
{int d2a[3][4] = { 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11 };//輸出 0,1,2,3,4,5,6,7,8,9,10,11for (size_t i = 0; i < 3; i++){for (size_t j = 0; j < 4; j++){std::cout << d2a[i][j] << ",";}}//輸出 0077FD04,0077FD04,0077FD14,0077FD24//可見(jiàn)二維數(shù)組名是數(shù)據(jù)首地址,d2a[0],d2a[1],d2a[2]分別是第一行,第二行,第三行的首地址std::cout << d2a << "," << d2a[0] << "," << d2a[1] << "," << d2a[2] << std::endl;//最直觀的順序輸出所有元素的方式//輸出 0,1,2,3,4,5,6,7,8,9,10,11int* pa = (int*)d2a;for (size_t i = 0; i < 12; i++){std::cout << *(pa + i) << ",";}//最難理解的二維數(shù)組名當(dāng)指針的輸出方式//輸出 0,1,2,3,4,5,6,7,8,9,10,11for (size_t i = 0; i < 12; i++){std::cout << *(*d2a + i) << ",";//錯(cuò)誤方式,雖然二維數(shù)組指向數(shù)組首地址,但相當(dāng)于行指針,d2a+0 = d2a[0], d2a+1 = d2a[1],d2a+2=d2a[2]//std::cout << *(d2a + i) << ",";
}//理解了二維數(shù)組名的實(shí)質(zhì)后,下面的就容易理解了char str[] = "ab";char(*px)[3] = &str;(*px)[0] = 'a';(*px)[1] = 'b';(*px)[2] = 'c';
}
?
總結(jié)
以上是生活随笔為你收集整理的C++二维数组名的再探索的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 转载 图像卷积
- 下一篇: C++如何限制对象在堆上或栈上生成