1.指针数组的定义
之前学过整型数组是存放整型的数组,字符数组是存放字符的数组,由类比可知,指针数组就是存放指针的数组。同理,指针数组的类型也是数组名去掉后的剩余部分。定义方式如下:
type *ptr[size]; //type是存放指针指向的对象的类型,ptr是数组名,size是数组的大小。
表示ptr 是一个包含 size 个指向type类型的指针的数组。如以下例子:
![]()
表示ptr是一个数组,其存放了5个指针,每个指针指向的类型均是int类型。其存放形式如下图:

2.指针数组的初始化
指针数组与整型数组的用法一样,可以通过下标访问指针数组中存放的指针,数组名即指针数组变量的变量名。
如果你想要创建一个指针数组并初始化它,你需要明确地为每个指针赋值,比如:
1.数组指针的定义
之前学过整型指针变量存放的是整型变量的地址,指针指向整型数据;浮点型指针变量存放的是浮点型变量的地址,指针指向的是浮点型数据,由类比可知,数组指针变量存放的是数组的地址,指针指向的是整个数组。定义方式如下:
type (*ptr)[size]; // 由于ptr不加括号的话会优先与中括号结合,所以为了定义数组指针变量,就需要将*ptr加括号,然后ptr指向的是一个大小为10个整型的数组。如图析:
如以下例子:
![]()
表示将数组arr的地址取出放入ptr中,ptr 是指向 arr 数组的指针。
2.数组指针的使用
2.1数组指针+-
整型指针(例如 `int*` 类型)的加法操作是以指针所指向的数据类型的大小为单位进行的。当你对一个整型指针进行加1(`ptr + 1`)时,实际上是将指针的值增加了一个整型的大小,即 4 个字节;同理,当你对一个数组指针进行+1时,实际上是将指针的值增加了一个数组的大小。如以下例子:

2.2通过数组指针访问数组元素

这里的*p表示先对指针进行解引用找到指针指向的数组(即通过存放在p中的地址在内存中找到存放的数组),然后根据数组的下标取出数组的元素。
2.3数组指针作为函数参数

当自定义的函数接收数组时,可以使用数组指针接收。
版权声明:
本文来源网络,所有图片文章版权属于原作者,如有侵权,联系删除。
本文网址:https://www.mushiming.com/mjsbk/12436.html