在c语言中,数组指针,就是一个指针,指向一个数组。定义数组指针有3种方式。
(1) 通过自定义数组类型来定义
typedef int(MYINT)[5];
MYINT *p;
//定义数组指针的第一种类型,
int a[5];
typedef int(MYINT)[5]; //定义数组类型
MYINT* p; //定义一个指针,指向一个数组,即数组指针
p = &a;
for (int i = 0; i < 5; i++)
{
(*p)[i] = i;
}
for (int i = 0; i < 5; i++)
{
printf("%d ", (*p)[i]);
}
printf("\n");
(2) 通过自定义数组指针类型来定义
typedef int(*MYPOINTER)[5];
MYPOINTER myPoint;
//定义数组指针的第二种类型
int b[5];
typedef int(*MYPOINT)[5]; //定义数组指针类型,意思是这个一个指针,指向一个数组,这个数组存储的元素类型是int, 大小为5。
MYPOINT p1;
p1 = &b;
for (int i = 0; i < 5; i++)
{
(*p1)[i] = i * 2;
}
for (int i = 0; i<5; i++)
{
printf("%d ", (*p1)[i]);
}
printf("\n");
(3)直接定义
int (*pointer)[n];
pointer 为数组指针变量名
type 为指向的数组的类型
n 为指向的数组的大小
//定义数组指针的第三种的方法,直接定义
int c[5];
int(*pointer)[5];
pointer = &c;
for (int i = 0; i < 5; i++)
{
(*pointer)[i] = i * 3;
}
for (int i = 0; i < 5; i++)
{
printf("%d ", (*pointer)[i]);
}
printf("\n");