一.指针数组
指针数组是一个数组,在指针数组中存放的是指针变量。
定义一个指针数组p
int *p[5];
内存模型如下:
指针数组的初始化
#include <stdio.h>int main(void)
{int a=1;int b=2;int c=3;int i;int *p[3] = {&a,&b,&c};for(i=0;i<3;i++){printf("%d\n",*p[i]);}return 0;}
运行结果:
二.数组指针
数组指针是一个指针,指向的是数组。
定义一个数组指针P:
int (*P)[5];
内存模型如下:
数组指针的初始化
#include <stdio.h>int main(void)
{int a[5]={0,1,2,3,4};int i;int (*p)[5] = &a;for(i=0;i<5;i++){printf("%d\n",*(*p+i));}return 0;}
运行结果:
三.如何区分
是指针数组还是数组指针看名字的最后俩个字,所以指针数组是数组,数组指针是指针。
四.视频教程
60.数组指针和指针数组_哔哩哔哩_bilibili