C语言
您现在所在的位置:首页>企业动态>C语言

数组指针

编辑:学到牛牛IT培训    发布日期: 2023-08-03 14:49: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的首地址


1.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

地址:成都市金牛区西城国际A座8楼

  • 扫一扫,免费咨询

  • 微信公众号

学一流技术,找高薪工作

7-24小时服务热线:

028-61775817

版权声明 网站地图

蜀ICP备2021001672号

课程问题轻松问