【c语言】指针数组、数组指针

创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡><)!! 

主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!

给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ  

目录

指针知识:

 一、指针数组

 二、数组指针

用数组指针遍历数组: 


指针知识: 指针知识详解icon-default.png?t=N2N8https://blog.csdn.net/TiSg0/article/details/129999819?spm=1001.2014.3001.5501

原则    &操作找到地址 *操作获得空间使用权 

【c语言】指针数组、数组指针_第1张图片

 

一、指针数组

指针数组指针类型的数组

#include 
int main()
{
	int a=1,b=2,c=3,d=4;
	// 指针类型的数组简称:指针数组。 每个数组成员都是指针变量。
	int arr[3] = { 7,8,9 };
	int* p[4] = { &a,&arr[1],arr,arr + 2 };
	return 0;
}

指针数组成员(存放地址):&a、&arr[1]、arr、 arr+2:arr是一个地址,arr偏移2也是一个地址 

调试器查看一下数组成员: 

 

 二、数组指针

 数组指针是指针类型的扩展

数组指针:数组类型 加 指针

 定义数组指针:

#include 
int main()
{
	int a = 1;
	int arr[] = {1,2,3,4};
	int *p = &a;
	//将int [4]当成一个整体看  4个int类型数组 + 指针 ==数组指针
	int (*P)[4];//可以指向4个连续int型存储空间的地址。
	P = &arr;

    return 0;
}

 调试器查看一下: 

【c语言】指针数组、数组指针_第2张图片

 【c语言】指针数组、数组指针_第3张图片

 *p一定记得加括号!!!加了括号才是数组指针,否则为指针数组。

【c语言】指针数组、数组指针_第4张图片 

建议在arr前使用&符号的原因: 

【c语言】指针数组、数组指针_第5张图片

  加了&是整个数组类型的地址,在&a+1偏移时,整个数组偏移 指向下一个数组

*P指向整个数组的指针,sizeof(*P)为整个数组类型的字节大小为16. 获得空间大小 

用数组指针遍历数组: 

printf("%d ",(*P)[i] );// *P代表整个数组的空间  [i]代表其中的第i个 

#include 
int main()
{
	int a = 1;
	int arr[] = {1,2,3,4};
	int *p = &a;
	
	int (*P)[4];//可以指向4个连续int型存储空间的地址。
	P = &arr;
	for (int i = 0; i < 4; i++)
	{
		printf("%d ",(*P)[i] );// *P代表整个数组的空间  [i]代表其中的第i个
	}
	return 0;
}

 一定记得加括号!!(*P)[ i ] 通过P先得到空间,再得到其中的第几个值【c语言】指针数组、数组指针_第6张图片

 

你可能感兴趣的:(c语言之路重点知识整合,c语言,c++,笔记,学习)