指针与二维数组
来源:互联网 发布:伊登软件 编辑:程序博客网 时间:2024/06/10 09:43
#include <stdio.h>
int main()
{
int a[3][4] = {
00,01,02,03,
10,11,12,13,
20,21,22,23
};
//---------------------------------------下面2种等价--------------------------------------------
printf("a 指向一维数组a[0],即0行首地址:%p\n", a );
printf("a+1 指向一维数组a[1],即1行首地址:%p\n", a+1);
int(*p)[4] = a; //指向一个长度为4的一维数组的指针 (行指针)
printf("p 指向一维数组a[0],即0行首地址:%p\n", p);
printf("p+1 指向一维数组a[1],即1行首地址:%p\n", p + 1);
/*
地址:00000000002BFB78
地址:00000000002BFB88
两个地址相差 10 即16字节, 正好 一行元素的空间 4*4
*/
//------------------------------------下面3种等价-----------------------------------------------
printf(" *a a[0][0]首地址:%p\n", *a);
printf(" *a + 1 a[0][1]首地址:%p\n", *a + 1);
printf("&a[0][0] a[0][0]首地址:%p\n", &a[0][0]);
printf("&a[0][0]+1 a[0][1]首地址:%p\n", &a[0][0] + 1);
printf("a[0] a[0][0]首地址:%p\n", a[0]);
printf("a[0]+1 a[0][1]首地址:%p\n", a[0]+1);
/*
地址:00000000002BFB78
地址:00000000002BFB7C
两个地址相差 4 字节, 正好 一个元素的空间
*/
//-----------------------------------指针剖析---------------------------------------------------
int * arr1[5]; //指针数组
int ** p1 = arr1; //指针的指针
int arr2[3][5]; //元素是数组的数组
int (*p2)[5] = arr2; //数组指针 (行指针)
int arr3[5];
int arr4[5];
int(*p4)[5] =& arr4; //数组指针 (行指针)
return 0;
}
int main()
{
int a[3][4] = {
00,01,02,03,
10,11,12,13,
20,21,22,23
};
//---------------------------------------下面2种等价--------------------------------------------
printf("a 指向一维数组a[0],即0行首地址:%p\n", a );
printf("a+1 指向一维数组a[1],即1行首地址:%p\n", a+1);
int(*p)[4] = a; //指向一个长度为4的一维数组的指针 (行指针)
printf("p 指向一维数组a[0],即0行首地址:%p\n", p);
printf("p+1 指向一维数组a[1],即1行首地址:%p\n", p + 1);
/*
地址:00000000002BFB78
地址:00000000002BFB88
两个地址相差 10 即16字节, 正好 一行元素的空间 4*4
*/
//------------------------------------下面3种等价-----------------------------------------------
printf(" *a a[0][0]首地址:%p\n", *a);
printf(" *a + 1 a[0][1]首地址:%p\n", *a + 1);
printf("&a[0][0] a[0][0]首地址:%p\n", &a[0][0]);
printf("&a[0][0]+1 a[0][1]首地址:%p\n", &a[0][0] + 1);
printf("a[0] a[0][0]首地址:%p\n", a[0]);
printf("a[0]+1 a[0][1]首地址:%p\n", a[0]+1);
/*
地址:00000000002BFB78
地址:00000000002BFB7C
两个地址相差 4 字节, 正好 一个元素的空间
*/
//-----------------------------------指针剖析---------------------------------------------------
int * arr1[5]; //指针数组
int ** p1 = arr1; //指针的指针
int arr2[3][5]; //元素是数组的数组
int (*p2)[5] = arr2; //数组指针 (行指针)
int arr3[5];
int *p3 = arr3; //普通整形指针
int arr4[5];
int(*p4)[5] =& arr4; //数组指针 (行指针)
return 0;
}
阅读全文
0 0
- 二维指针与二维数组
- 二维数组与二维指针
- 二维数组与二维指针
- 二维数组与指针
- 二维数组与指针
- 二维数组与指针
- 指针与二维数组
- 指针与二维数组
- 二维数组与指针
- 二维数组与指针
- 指针与二维数组
- 二维数组与指针
- 二维数组与指针
- 指针与二维数组
- 二维数组与指针
- 二维数组与指针
- 二维数组与指针
- 二维数组与指针
- ArrayList和LinkedList
- 跨服务器Session共享的四种方法
- 秒杀系统架构优化思路
- from __future__ imports must occur at the beginning of the file问题的解决
- 101. Symmetric Tree
- 指针与二维数组
- 从零开始学习音视频编程技术(四) FFMPEG的使用
- MySQL linux(centos)备份脚本
- mysql 有哪些索引
- Picasso源码分析4
- mybatis-全局配置文件-mybatis-config.xml-settings-4
- tensorflow常用优化函数
- 微信小程序 车轮之 地区选择
- Android中include标签使用一些常用注意事项