【C语言】深入理解指针数组和数组指针

(一)定义

  • 指针数组:顾名思义就是一个数组,数组中每个元素都是指针类型
  • 数组指针:就是一个指向数组的指针,指针变量中保存着数组的地址

这里我们区分一个概念
数组地址 != 数组首元素地址(数值相同,意义不同)
例如:一维数组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;
}

后面的二维数组和数组指针的结合使用会详细介绍数组指针的价值

猜你喜欢

转载自blog.csdn.net/xiaoxiaoguailou/article/details/121335762