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];


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


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

推荐阅读

  • 计算机专业的就业难度怎么样?

    国产午夜鲁丝片AV无码蜜臀,福利免费观看午夜体检区,人妻少妇精品无码专区APP,伊人久久大香线蕉成人综合网,国产妓女在线观看视频,亚洲成a人片在线观看尤物,亚洲精品国产一二三无码AV,亚汌国产一区二区三区

  • 嵌入式软件开发学习路线

    国产午夜鲁丝片AV无码蜜臀,福利免费观看午夜体检区,人妻少妇精品无码专区APP,伊人久久大香线蕉成人综合网,国产妓女在线观看视频,亚洲成a人片在线观看尤物,亚洲精品国产一二三无码AV,亚汌国产一区二区三区

  • 为什么自学编程那么难?

    国产午夜鲁丝片AV无码蜜臀,福利免费观看午夜体检区,人妻少妇精品无码专区APP,伊人久久大香线蕉成人综合网,国产妓女在线观看视频,亚洲成a人片在线观看尤物,亚洲精品国产一二三无码AV,亚汌国产一区二区三区

  • IT培训机构出来的到底好不好就业呢?

    国产午夜鲁丝片AV无码蜜臀,福利免费观看午夜体检区,人妻少妇精品无码专区APP,伊人久久大香线蕉成人综合网,国产妓女在线观看视频,亚洲成a人片在线观看尤物,亚洲精品国产一二三无码AV,亚汌国产一区二区三区

封闭学习

2

1

028-61775817

蜀ICP备2021001672号

在线咨询 免费试听VIP课程