创作不易,本篇文章如果帮助到了你,还请点赞支持一下♡>𖥦<)!!
主页专栏有更多知识,如有疑问欢迎大家指正讨论,共同进步!
给大家跳段街舞感谢支持!ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ ዽ ጿ ኈ ቼ
目录
指针知识:
一、指针数组
二、数组指针
用数组指针遍历数组:
指针知识: 指针知识详解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先得到空间,再得到其中的第几个值