想问一个关于指针的简单问题,求详细的解答一下
int* (*a), int (*a), int * a。这三个的区别是什么?求大佬给讲解一下,真的懵逼了。 int (*a) 是定义一个数组指针,int * a 是定义一个指针数组,int* (*a) 是定义一个指向数组指针的指针 int *a :数组指针。数组a里存放的是10个int型指针 int (*a) :a是指针,指向一个数组int* (*a):a是一个指向包含10个int型指针元素的数组
int *a :这是一个存放int指针的数组 zltzlt 发表于 2020-7-28 11:34
int (*a) 是定义一个数组指针,int * a 是定义一个指针数组,int* (*a) 是定义一个指向数组指 ...
我是不是可以这么理解:
int (*a)[]中的a就只是代表这个数组中的第一位元素的指针,也就是这个数组的指针。
int* a中的a也是代表这个数组第一位的指针,但是他有a,a,...很多指针。
第三个有点绕没太懂。感觉本质上是不是也只是一个指向一个指针的指针地址。
可以这么理解吗?
IKXV 发表于 2020-7-28 11:52
我是不是可以这么理解:
int (*a)[]中的a就只是代表这个数组中的第一位元素的指针,也就是这个数组的指 ...
可以从优先级考虑,int (*a)[] 先看 (*a) ,它是一个指针,指向什么的指针呢?看前后面可以知道指向一个 int 数组的指针
int* a 先看 a,它是一个数组,数组的元素是什么类型呢?是 int* 也就是整型指针类型。
第三个可能是我理解有误,int* (*a) 是一个指向包含 10 个 int 指针的数组。可以这么理解,由于 int (*a)[] 是一个指向一个 int 数组的指针,那么 int* (*a) 就是一个指向 int* 型数组的指针
页:
[1]