文章目录
(一)定义
指针数组:顾名思义就是一个数组,数组中每个元素都是指针类型
数组指针:就是一个指向数组的指针,指针变量中保存着数组的地址
这里我们区分一个概念
数组地址 != 数组首元素地址
(数值相同,意义不同)
例如:一维数组arr
int arr[5];
名称 | 含义 | 类型 |
---|---|---|
arr | 数组首元素地址 | int[5] |
&arr | 数组地址(使用数组指针来保存该地址) | int[5] * |
&arr[0] | 数组首元素地址 | int* |
vs2019中显示如下:
(二)指针数组的使用
该数组中每一个元素crr[0] 、crr[1]存放的都是char*类型的地址;
int main()
{
char* crr[2] = {
"hello", "jiege"};
printf("crr[0] = %s\n", crr[0]);
printf("crr[1] = %s\n", crr[1]);
}
(三)数组指针的使用
s的类型:int[2] *
arr的类型:int[2]
&arr的类型:int[2] *
所以使用数组指针指向数组的地址,类型才能匹配
int main()
{
int arr[2];
int (*s)[2] = &arr;
}
后面的二维数组和数组指针的结合使用会详细介绍数组指针的价值