C++ 理解二维数组的指针
来源:互联网 发布:php开源三级分销商城 编辑:程序博客网 时间:2024/05/16 15:28
用一个main函数来描述这个问题吧
今天终于弄明白**p, (*p)[4], *p[4]的区别
int main(){
int arr[4][4] = {1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16};// 理解二维数组的指针
// 首先,二维数组的名称 arr 是一个指针, 它相当于这样的一个指针:(*p)[4],它是一个"指针的指针"
// 从第一层面来讲,它是一个包含4个元素数组的指针,
int (*p)[4] = arr;
// p等于这个数组的首元素的地址
cout << arr << endl;
// *p为首元素的值(*p = p[0])
cout << *arr << endl;
// 从第二层面来讲,这个4元数组的每个值都是一个数组的指针,指向数组首元素,也就是每行的第一个元素
cout << **arr << endl;// 输出1,即第,0行的第0个元素值
// 接下来重点在这里,这与 * 和 [] 的优先级有关系,[] 的优先级大于 *,
// 所以arr[1]为第1行首元素的地址,*arr[1]为第一行首元素的值,即5
cout << *arr[1] << endl; // 输出5
// *arr的值,根据上面解释,为第0行的指针,
// 所以(*arr)[1]表示第0行的第1个元素,即2
cout << (*arr)[1] << endl;// 输出2
return 0;
}
多维数组情况以此类推
1 0
- C语言的二维数组和二级指针的理解
- C的二维数组理解指针以及存储的方式
- C语言教学--二维数组和指针的理解
- 二维数组和指针的理解
- C++ 理解二维数组的指针
- 关于二维数组的指针理解
- 理解c语言指针很关键的几句话,二维数组与指针类型的分析
- 在c语言学习中的问题(一):数组指针,指针数组,二维数组的理解与区分
- 关于二维数组和二维指针的理解总结
- C语言,二维数组时候的指针
- C 二维数组与指针的关系
- C/C++指向二维数组的指针
- C语言中二维数组、二维指针、指向指针的数组、指向数组的指针
- 二维数组的指针及数组的符号理解
- 关于c语言二维数组与指针的个人理解及处理办法。
- 关于数组指针,指针数组,双重数组,二维矩阵,字符串数组,双重字符指针的理解
- 二维数组指针相关理解
- C/C++二维数组的参数传递与二维指针
- Mybatis动态SQL--采用开发案例讲解
- 剑指offer(五十九)之二叉搜索树的后序遍历序列
- 神奇的栈帧
- 面向对象——this和super
- [Java] 对象的声明与实例化
- C++ 理解二维数组的指针
- Shell脚本编程之函数
- android通讯录之短信
- win10系统下搭建cocos2d-x v3.11.1版本开发环境
- Jzptab [Bzoj 2693]
- Linux修改用户所在组方法
- 设计模式-工厂
- 第十六周程序阅读(2)
- [Java]Session,Cookie知识与应用