指向多维数组的指针
来源:互联网 发布:马其顿 知乎 编辑:程序博客网 时间:2024/06/05 19:07
#include <stdio.h>void main(){int buf[2][3] = { {1,2,3},{4,5,6} };int(*p)[3]; //定义了一个指针,指向int [3]这种数据类型。指针p即为指向二维数组的指针p = buf;//p指向了二维数组中的第0行//p++; //指向了第1行printf("%d\n", sizeof(p));//输出4,表明p是一个指针printf("%d,%d\n", p, p + 1);//输出14614236,14614248 12=3*4 位移了1 * sizeof(int [3]) =12printf("p+1=%d\n", p + 1);//输出第1行首地址printf("*(p + 1)=%d\n", *(p + 1));//输出第1行,第0列元素的地址printf("*(*(p + 1))=%d\n",*(*(p + 1)));//输出第1行第0列元素的值printf("*(p+1)+2=%d\n", *(p + 1) + 2);//输出第1行第2列元素的地址printf("*(*(p + 1)+1)=%d\n", *(*(p + 1)+2));//输出第1行第2列元素的值for(int i=0;i<2;i++)for (int j = 0;j < 3;j++){//printf("%d\n", p[i][j]);printf("%d\n", *(*(p + i) + j));//和上一句等同}}
运行结果:
4
15924692,15924704
p+1=15924704
*(p + 1)=15924704
*(*(p + 1))=4
*(p+1)+2=15924712
*(*(p + 1)+1)=6
1
2
3
4
5
6
请按任意键继续. . .
总结可以发现:对于一个指向二维数组的指针,只有出现两个*或者两个[]或者一个*和一个[]的情况下(没有出现&时)才是对应的二维数组中某一行某一列的元素的值,只出现一个或0个[]和*的情况)是表示的地址。
阅读全文
0 0
- 指向多维数组的指针
- 指向多维数组的指针
- 指向多维数组的指针
- 指向数组的指针与多维数组
- 指针指向多维数组
- 指向多维数组的指针变量
- 指向多维数组的指针变量
- 指向多维数组的指针变量
- C语言指向多维数组的指针
- 指向多维数组的指针变量
- 指向多维数组元素的指针变量
- C语言指向多维数组的指针
- C语言指向多维数组的指针
- C语言指向多维数组的指针
- c指向多维数组的指针
- 8--12指向多维数组元素的指针变量之指向二维数组的指针
- (*p)[n] ,指向多维数组的指针运算基础知识
- 076.Pointer Two Array 指向多维数组的指针
- 【HUSTOJ】1092: 马鞍数
- Java多线程学习
- LightOJ
- Gym
- C++ 直接选择排序的实现实例代码
- 指向多维数组的指针
- Spark特性之共享变量
- Tomcat下使用Druid配置JNDI数据源
- 第4部分库与运行库(第10章 内存)
- H5表单相关新增元素和属性
- 赏析ReentrantLock源码
- Python——代码覆盖报告covera
- 你一定要知道的关于Linux文件目录操作的12个常用命令
- StringBuffer 与 StringBuilder