C/C++中二维数组和指针关系分析
2017-05-17 16:49
232 查看
#include<iostream> using namespace std; int main() { // 初始化一个二维数组 int iArr[2][3] = {0,1,2,3,4,5}; // 把一个二维数组一维化 int *p = iArr[0]; // iArr[0]第一个数组的首地址 //由于二维数组在内存中的存储是先行后列的方式,所以第二行也紧跟第一行之后,这样 // 就可以用p来访问数组的元素了 //它们输出的结果都是3 cout << p[4] << endl; //这种访问方式是下标的方式 cout<< *(p + 4) << endl; // 这种方式是指针方式 // 下面用二维数组去探索 //int **q = iArr; // 这样子不出意外的话会报错的,是无法从int[2][3]转化为 int ** //其实二维数组名是一个数组指针,那么什么是数组指针,数组指针就是指向一个数组首地址的指针,它 // 实际也是一种指针类型,类似与函数指针,它的声明如下 //int(*pArr)[3];// 它说明pArr是一个数组指针,它指向的是一个数组元素为int类型并且数组的元素的个数为 // 3的一个数组指针,中间的括号是必不可少的。少了它就变为:指针数组。指针数组是数组 // 类型,它的声明如下: //int *pArr[3]; // 既然二维数组的数组名是指向第一行数组的首地址,我们也叫它为行指针。那么我们就可以用这种数组名 // 或者指针来 访问二维数组的元素。 int(*pArr)[3]=iArr; // 下面,访问第二行第二列的元素,代码如下 cout <<"第一行第二列的元素:"<< *(*(pArr+1) +1) << endl; // 也可以用这这种方法来访问 cout << *(*(iArr+1) + 1) << endl;; system("pause"); return 0; }
相关文章推荐
- C/C++中二维数组和指针关系分析
- C/C++中二维数组和指针关系分析
- C/C++中二维数组和指针关系分析
- C/C++中二维数组和指针关系分析
- C/C++中二维数组和指针关系分析
- C/C++中二维数组和指针关系分析
- C/C++中二维数组和指针关系分析
- c++高级---C/C++二维数组---与指针的关系
- 彻底搞清C/C++中一维数组,二维数组,指针,数组指针和指针数组以及指向指针的指针,行地址和列地址之间的关系
- c/c++中指针与二维数组的关系demo程序
- C++ 的指针的指针(如int **)和二维数组的关系
- C_C++_二维数组与二维指针的地址与访问关系
- C++二维数组和指针的关系
- 彻底搞清C/C++中一维数组,二维数组,指针,数组指针和指针数组以及指向指针的指针,行地址和列地址之间的关系
- 剖析C/C++二维数组与指针的关系
- Visual C++及C++中的智能指针应用分析
- 深入理解 C++ 指针(五)---数组和指针的关系
- C++ 数组和指针类型的关系
- 深入理解 C++ 指针(七)---指针和函数的关系
- 深入理解 C++ 指针(六)---指针和结构类型的关系