指针数组与数组指针

目录

概要

指针数组

数组指针

​小结


概要

本文章主要讲解指针数组与数组指针的区别。

指针数组

1、指针数组:是指针类型的数组,每个数组成员都是指针变量

2、格式:类型* 数组名[长度];

	int* pa[4];

类型:int*[4]

3、存储内容:

指针数组存储的内容是指针。

&a:指的是a的地址

arr:指的是数组第一个元素7的地址

arr+1:指的是9的地址

&arr[2]:指的是8的地址

以上是四种地址的写法,总之指针数组中存储的是数据的地址。

int a=1;
int arr[4] = {7,9,8,6};
int* pa[4] = {&a,arr,arr+1,&arr[2]};

4、如何对指针数组遍历取得指向的空间值

pa[i]:指的是指针数组中保存的地址

*pa[i]:指的是地址指向的数据

#include 
int main()
{
	
    int a=1;
	int arr[4] = {7,9,8,6};
	int* pa[4] = {&a,arr,arr+1,&arr[2]};
	for (int i=0;i<4;i++)
	{
		printf("%d %d\n",pa[i],*pa[i]);
	}
	 
	return 0;
}

指针数组与数组指针_第1张图片

5、调试

指针数组与数组指针_第2张图片

数组指针

1、数组指针:用来指向一组数,管理一组数

2、格式:类型(*数组名)[长度];

int(*pa)[4];

类型:int(*)[4]

3、如何使用数组指针

pa=&a;指pa是一组整数的指针,指向a数组的空间,&a是整个数组的地址而不是首地址。


	int a[] = { 1,2,3,4 };
	int(*pa)[4];
	pa = &a;

 4、调试器:

从调试器中看到数组指针指向的是一组数,并且可以管理一组数。

指针数组与数组指针_第3张图片

5、利用 pa 数组指针遍历数组内的成员 

pa:找到数组的首地址

sizeof(*pa):得到数组整体空间,int占4个字节,数组共4个元素,该数组的总空间为4*4=16

(*pa)[0]:得到子空间

#include 
int main()
{
	
	int a[] = { 1,2,3,4 };
	int(*pa)[4];
	pa = &a;
	printf("%d\n", pa);//找到数组的首地址
	printf("%d\n", sizeof(*pa));//得到 数组整体空间
	printf("%d\n", (*pa)[0]);//得到 子空间
	printf("%d\n", (*pa)[1]);
	printf("%d\n", (*pa)[2]);
	printf("%d\n", (*pa)[3]);

	return 0;
}

指针数组与数组指针_第4张图片 小结

通过本文章应该能够理解指针数组与数组指针的区别,多多支持博主。

你可能感兴趣的:(C语言系列,c++)