二维数组的指针
来源:互联网 发布:php curl 异常处理 编辑:程序博客网 时间:2024/05/17 08:57
<span style="font-size:24px;">#include<stdio.h>#include <stdlib.h>// 二维数组的指针 // 一维数组的单个元素是单个变量 而二维数组的元素则是一行元素// *a代表列地址 也就是单个元素的地址 a 代表行地址 &a代表二位数组的地址// sizeof(**a) 取列地址中的内容所占内存的大小 也就是一个元素所占内存的大小 // sizeof(*a) 取行地址中的内容所占内存的大小 也就是一行元素所占内存的大小 // sizeof(*&a) 取整个数组地址中的内容所占内存的大小 也就是二维数组所占内存的大小// a[i]代表第i-1行的第一个元素的地址 a[0]+1=*a+1 代表第二行第二个元素的地址 &a[1][1]//*(a[1]+0)=*(*(a+1)+0)=a[1][0]的值void main(){int a[3][4] = { { 1, 2, 3, 4 },{ 5, 6, 7, 8 },{ 9, 10, 11, 12 } };//下面是各个指针中的地址 他们的地址一样 但所对应的数据大小却不同printf("&a=%p,a=%p,**a=%p,a[0]=%p\n", &a, a, *a, a[0]);//下面打印出各个指针中的地址所对应数据的大小printf("&a=%8d,a=%8d,**a=%8d,a[0]=%8d\n\n", sizeof(*(&a)),sizeof(*a),sizeof(**a), sizeof(*a[0]));//下面打印出a[2][1]变量的值 printf("*(*(a+2)+1)=%d,*(a[2]+1)=%d,*(*a+9)=%d,a[2][1]=%d\n\n", *(*(a + 2) + 1), *(a[2] + 1), *(*a + 9),a[2][1]);//对于二维数组,普通的指针不能匹配,需要创建特殊的指针//这是因为 : int a; int * p=&a; 定义一个指针 int *表明这是一个int型的指针,//从这里开始读取sizeof(int)大小内存 然后以int的方式显示出数据// 如果 int a[3][4]; int *p=a; 会出现类型不匹配 所以要用下面的方式int (*p)[4] = a;printf("p[2][1] = %d\n\n",p[2][1]);getchar();}</span>
0 0
- 数组指针,指针数组,二维数组,二维数组的指针
- 二维数组的指针
- 二维数组的指针
- 二维数组的指针
- 二维数组的指针
- 二维数组的指针
- ******二维数组&指针的指针******
- 二维数组 指向二维数组的指针 指针数组 指向二维数组的指针数组
- 二维数组的指针与指针数组
- 二维数组和二维指针的关系
- 二维指针和二维数组的关系
- 二维指针和二维数组的区别
- 二维数组和二维指针的关系
- 二维数组,指针的讨论
- 指针 二维数组的问题
- 指向二维数组的指针
- 指向二维数组的指针
- 指向二维数组的指针
- uva 11177 - Fighting Against a Polygonal Monster(几何)
- 进程通信
- Scrapy爬虫框架入门
- 黑马程序员---学习笔记6:字符串
- NYOJ 6 喷水装置(一) (贪心)
- 二维数组的指针
- hdu 5399 Too Simple
- Hadoop学习路线图
- 1056. Mice and Rice (25)
- webview里面的页面不能往下下拉(下拉卡死)解决
- html
- myisamchk命令使用总结
- Flask快速开始总结
- NDIS中间层驱动学习小记