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

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

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

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

目录

指针知识:

 一、指针数组

 二、数组指针

用数组指针遍历数组: 


指针知识: 指针知识详解https://blog.csdn.net/TiSg0/article/details/129999819?spm=1001.2014.3001.5501

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

一、指针数组

指针数组指针类型的数组

#include <stdio.h>
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 <stdio.h>
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;
}

 调试器查看一下: 

 

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

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

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

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

  

用数组指针遍历数组: 

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

#include <stdio.h>
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先得到空间,再得到其中的第几个值

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

天喜Studio

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值