物联网
您现在所在的位置:首页>企业动态>物联网

C语言数组指针

编辑:学到牛牛IT培训    发布日期: 2021-12-27 11:51:51  

数组指针

数组指针:存放多维数组首地址的变量

关于数组指针这里,最容易混淆的就是数组指针和指针数组。因此,我们需要清楚指针和数组。

指针我们在上一篇文章中已经讲解过了,在这里不过多解释。

数组:同一数据类型的集合。

在c语言里面,数组的定义方式为:

元素数据类型数组名 [ 元素个数 ] ;

如下:

int arr[4] = {0};//一维数组

数组除开数据类型不同以外,分为一维数组、二维数组、三维数组……。一个“ [ ] ”表示一维,如下:

int brr[3][4] = {0};//二维数组
int crr[2][3][4] = {0};//三维数组

而二维数组及二维以上的数组被称为 “ 多维数组 ” 。

int brr[3][4] = {0};//二维数组

指针数组:元素类型为指针的数组。

如下:

int*  p[4] = {0};//整型指针数组

每个元素的类型为int * ,因此为整型指针组成的数组。

char*  p1[3][4] = {0};//字符串二维数组

每个元素的类型为char * ,因此为字符串二维数组。

struct node *p2[4] = {0};//结构体指针数组

每个元素的类型为struct  node  * ,因此为结构体指针数组。

数组指针:存放多维数组首地址的指针。

int arr[3][4] = {0};//arr数组有3行4列
int (*p)[4] = arr;//数组指针,存放数组arr的首地址

数组指针.png

因为数组指针是将多维数组的第一维及数组名以指针替换,所以可以将数组指针看作如下:

int brr[3][4] = {0};
int (*p)[4] = brr;
//可以理解为:int (*)[4] p = brr;
//p为变量名,int (*)[4]为数据类型

数组指针与指针数组的区别为,一个为指针,一个为数组,以后两个字作为标准。

如果“ * ”在括号之内,则指针优先级高一些,即为数组指针:

int (*p)[4];

没有括号或在括号外面,数组优先级高则为指针数组:

int *arr[4];

一级指针可以存放一维数组地址,数组指针用于存放多维数组首地址。

免费试学
课程好不好,不如实地听一听

封闭学习

2

1

联系我们

电话:028-61775817

邮箱:1572396657@qq.com

地址:成都高新西区西芯大道4号

  • 学到牛牛在线咨询

    扫一扫,免费咨询

  • 学到牛牛公众号

    微信公众号

学一流技术,找高薪工作

7-24小时服务热线:

028-61775817

版权声明 网站地图

蜀ICP备2021001672号

课程问题轻松问