创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ
目录
指针知识: 指针知识详解
https://blog.youkuaiyun.com/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先得到空间,再得到其中的第几个值
本文介绍了C语言中指针数组和数组指针的概念。指针数组是一个包含指针元素的数组,而数组指针则是指向数组的指针。文章详细讲解了如何声明和使用这两种类型,并提供了示例代码展示如何遍历数组。强调了在使用中注意指针和数组指针的区别,以及使用括号来正确访问数组元素的重要性。

1082

被折叠的 条评论
为什么被折叠?



