C++二维数组名的再探索
生活随笔
收集整理的這篇文章主要介紹了
C++二维数组名的再探索
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
#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//可見二維數組名是數據首地址,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) << ",";}//最難理解的二維數組名當指針的輸出方式//輸出 0,1,2,3,4,5,6,7,8,9,10,11for (size_t i = 0; i < 12; i++){std::cout << *(*d2a + i) << ",";//錯誤方式,雖然二維數組指向數組首地址,但相當于行指針,d2a+0 = d2a[0], d2a+1 = d2a[1],d2a+2=d2a[2]//std::cout << *(d2a + i) << ",";
}//理解了二維數組名的實質后,下面的就容易理解了char str[] = "ab";char(*px)[3] = &str;(*px)[0] = 'a';(*px)[1] = 'b';(*px)[2] = 'c';
}
?
總結
以上是生活随笔為你收集整理的C++二维数组名的再探索的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 转载 图像卷积
- 下一篇: 【转】5亿个数找中位数