C++ 二维数组与指针

来源:互联网 发布:merge算法 c语言 编辑:程序博客网 时间:2024/06/03 08:34
#include <iostream>


//数组指针: 指针指向数组
//指针数组: 数组中存放的是指针
//当二维数组作为参数传递时需要传递二维数组数组指针


void print(int(*arr)[3]);


int main()
{
int arr[2][3] = { 0, 1, 2, 3, 4, 5 };


int(*pArr)[3] = arr;
int* p = arr[0];//将二维数组转化为类似于一维数组的方式进行访问,二维数组在内存中的存储也是先行

std::cout << sizeof(arr[0]) / sizeof(int)<< std::endl;//后列的方式存储,所以第二行也紧跟第一行之后
std::cout << p[5] << std::endl;
print(arr);


std::cout << *(*(pArr + 1) + 2) << std::endl; //以指针数组的方式输出arr[1][2]
std::cout << pArr[1][2] << std::endl; //以数组下标的方式输出pArr[1][2] 即arr[1][2]


system("pause");
return 0;
}


void print(int(*arr)[3])
{
int *p = arr[0];
for (int i = 0; i < 2; ++i)
{
for (int j = 0; j < 3; ++j)
{
std::cout << arr[i][j] << " ";
}
std::cout << std::endl;
}

}
原创粉丝点击