返回首页   进站必读

15.1 数组指针的定义


15.1 数组指针的定义

数组指针首先是个指针,这个指针指向的是个数组 指针可以指向复合类型,这一节学习指向数组的指针。以下定义一个指向数组的指针,该数组有10个int元素:

int (*a)[10];

和指针数组的定义

int *a[10];

相比,仅仅多了一个()括号。如何记住和区分这两种定义呢?我们可以认为[]比*有更高的优先级,如果a先和*结合则表示a是一个指针,如果a先和[]结合则表示a是一个数组。int *a[10];这个定义可以拆成两句:

typedef int *t;
t a[10];

t代表int *类型,a则是由这种类型的元素组成的数组。

int (*a)[10];

这个定义也可以拆成两句:

typedef int t[10];
t *a;

t代表由10个int组成的数组类型,a则是指向这种类型的指针。