- 指针数组: int *p1[5]; //[ ]的优先级比*高,所以它首先是个数组
- 指向整型变量的指针
指针数组是一个数组,每个数组元素存放一个指针变量
#include<stdio.h>
#include<string.h>
int main()
{
char *pa[5]={"hello","world","array","finger","index"};
int i;
for(i=0;i<5;i++)
{
printf("%s\n",pa[i]);//pa[i]要的是字符串,所以要给出字符串的地址,所以不能用*
}
return 0;
}
输出结果:
hello
world
array
finger
index
- 数组指针:int (*p2)[5];
- 数组指针是一个指针,它指向的是一个数组
-
#include<stdio.h> int main() { int temp[5]={1,2,3,4,5}; int *p=temp;//p指向的是一个变量 int i; for(i=0;i<5;i++) { printf("%d\n",*(p+i)); } return 0; }
#include<stdio.h> int main() { int temp[5]={1,2,3,4,5}; int (*p)[5]=&temp;//指向数组的第一个元素,而不是指向数组 (*p)[5]指向的是一个数组 int i; for(i=0;i<5;i++) { printf("%d\n",*(*p+i)); } return 0; }
输出结果: 1 2 3 4 5