博客
关于我
re学习记录从入门到入狱【15】
阅读量:151 次
发布时间:2019-02-28

本文共 1400 字,大约阅读时间需要 4 分钟。

指针数组 / 数组指针

1. 指针数组的定义

char arr[10];  //就是一个数组,有10个成员,每个成员宽度为1字节,因为是char类型char* arr[10]; //指针数组,长度10,名为arr,每个成员为char*指针类型,4字节

指针数组的赋值

int main(){   	char* a = "Hello";  	//编译器会在常量区分一块内存,存储Hello的ASCII码	//然后把内存的地址存到a,所以a和b里存的都是一个地址,因为是char* 所以都是4字节	char* b = "Cracker";}

那么我就可以定义一个数组

char* arr[2]={   a,b};//数组里面有两个成员//每个成员四字节//内容就是a和b两个地址
//那么也可以这样写//与上面完全相同char* arr[2];arr[0]=a;arr[1]=b;
//但我们开发中,用如下方式居多char* arr[2] = {   	"Hello",	"Cracker"};

可能看不懂,但是没关系,首先看数组类型char*。

存储的是,两个字符串的内存地址,而不是直接将字符串存储也是与上面一样,就是写法不同
2. 结构体指针数组
任何类型都可以定义数组,结构体呢?

struct poi{   	int x;	int u;};poi a; //定义一个变量,名为a,类型为结构体类型,宽度是8字节poi arr[10]; //结构体数组,创建一个数组,数组里有十个成员,每个成员都是poi类型,宽度就是8*10字节poi* abrr[10]; //结构体指针数组,也是个数组,也有十个成员,但是每个成员都是一个指针,宽度就是4*10字节

所以说,指针数组本质就是数组,只不过里面存的是各种各样的指针

4. 数组指针的使用

int arr[]={   1,2,3,4,5,6,7};int (*px)[7]=&arr;

如果我要取数组里面的值,怎么操作?

*取一个指针类型的值的时候,类型就是减掉一颗星。
加&取地址符的时候是加一颗星
int (px)[7] 所以取得时候去掉一个
那么他现在在我们眼里就是一个数组,我们就可以根据下标随便取值了。

int arr[] = {    1,2,3,4,5,6,7 };	int(*px)[7] = &arr;	printf("%d", (*px)[0]);

在这里插入图片描述

int arr[3][3] = {      //定义一个二维数组	{   1,2,3},	{   4,5,6},	{   7,8,9}};int x = &arr[0];  //取第一个成员的地址,也就是{1,2,3}//那么加一个取地址符*,也就是数组带了个*,就是数组指针

在这里插入图片描述

运行,报错如上图所示,所以&arr[0]就是一个数组指针类型

int (*x)[3] = &arr[0];  //所以我们就可以定义一个数组指针//取二维数组的第一个元素的地址。//那么 *x 得到的是什么//*x就是砍掉一颗星,砍掉一颗星后就是一个数组,宽度为3//(*x)[0],这样取的是宽度为3的第一个成员,首地址。//因为此时他在我们眼里就是一个数组,0是取这个数组里的第一个成员。
printf("%d,%d", (*x)[0], (*x)[1]);  //我们就会取出1和2,运行看下

在这里插入图片描述

转载地址:http://diwc.baihongyu.com/

你可能感兴趣的文章
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表多表增量同步_增删改数据分发及删除数据实时同步_通过分页解决变更记录过大问题_02----大数据之Nifi工作笔记0054
查看>>
NIFI1.21.0通过Postgresql11的CDC逻辑复制槽实现_指定表或全表增量同步_实现指定整库同步_或指定数据表同步配置_04---大数据之Nifi工作笔记0056
查看>>
NIFI1.23.2_最新版_性能优化通用_技巧积累_使用NIFI表达式过滤表_随时更新---大数据之Nifi工作笔记0063
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_根据binlog实现数据实时delete同步_实际操作04---大数据之Nifi工作笔记0043
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置binlog_使用处理器抓取binlog数据_实际操作01---大数据之Nifi工作笔记0040
查看>>
NIFI从MySql中增量同步数据_通过Mysql的binlog功能_实时同步mysql数据_配置数据路由_实现数据插入数据到目标数据库_实际操作03---大数据之Nifi工作笔记0042
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_03_来吧用NIFI实现_数据分页获取功能---大数据之Nifi工作笔记0038
查看>>
NIFI从MySql中离线读取数据再导入到MySql中_无分页功能_02_转换数据_分割数据_提取JSON数据_替换拼接SQL_添加分页---大数据之Nifi工作笔记0037
查看>>
NIFI从PostGresql中离线读取数据再导入到MySql中_带有数据分页获取功能_不带分页不能用_NIFI资料太少了---大数据之Nifi工作笔记0039
查看>>
nifi使用过程-常见问题-以及入门总结---大数据之Nifi工作笔记0012
查看>>
NIFI分页获取Mysql数据_导入到Hbase中_并可通过phoenix客户端查询_含金量很高的一篇_搞了好久_实际操作05---大数据之Nifi工作笔记0045
查看>>
NIFI同步MySql数据_到SqlServer_错误_驱动程序无法通过使用安全套接字层(SSL)加密与SQL Server_Navicat连接SqlServer---大数据之Nifi工作笔记0047
查看>>
Nifi同步过程中报错create_time字段找不到_实际目标表和源表中没有这个字段---大数据之Nifi工作笔记0066
查看>>
NIFI大数据进阶_FlowFile拓扑_对FlowFile内容和属性的修改删除添加_介绍和描述_以及实际操作---大数据之Nifi工作笔记0023
查看>>
NIFI大数据进阶_Json内容转换为Hive支持的文本格式_操作方法说明_01_EvaluteJsonPath处理器---大数据之Nifi工作笔记0031
查看>>
NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka消费者处理器_来消费kafka数据---大数据之Nifi工作笔记0037
查看>>
NIFI大数据进阶_Kafka使用相关说明_实际操作Kafka生产者---大数据之Nifi工作笔记0036
查看>>
NIFI大数据进阶_NIFI的模板和组的使用-介绍和实际操作_创建组_嵌套组_模板创建下载_导入---大数据之Nifi工作笔记0022
查看>>
NIFI大数据进阶_NIFI监控的强大功能介绍_处理器面板_进程组面板_summary监控_data_provenance事件源---大数据之Nifi工作笔记0025
查看>>
NIFI大数据进阶_NIFI集群知识点_认识NIFI集群以及集群的组成部分---大数据之Nifi工作笔记0014
查看>>