c 中int(* pt)的含义是什么
我已经阅读了关于此类型声明的一些内容。 声明是:
int (*arr)[5];
我对这种类型的声明有点困惑。实际上这个声明是什么意思,我们什么时候使用它。
int *arr[5]
arr
是5个指针的数组
int (*arr)[5]
arr
是一个指向5个整数元素数组的指针
检查以下代码:
int a[5] = { 1,2,3,4,5}; int (*arr)[5] = &a; printf("%d",(*arr)[2]);
现在可以访问数组元素了
(*arr)[i]
不是*arr[i]
这意味着arr
是一个指向5个整数数组的指针。 与五指针中较少混淆的数组相比:
int* arr[5];
这就是你需要括号的原因。
根据“声明遵循使用”规则:
-
(*arr)[i]
是一个int
,因此i <= 5
-
*arr
是一个int[5]
,因此是一个由五个整数组成的数组 -
arr
是一个int (*)[5]
,一个指向五个整数数组的指针。