那就是我现在所了解的:
int arr[][5]
-表示arr是指向5个数字的数组的指针。我未能实现以下功能:
int arr2[5];
int arr[][5]=&arr2;
ERROR: initializer fails to determine size of ‘arr’.
那就是我无法理解的:
()
的(*arr)[20]
手段,什么ARR代表。谢谢!
我不知道(* arr)[20]中的()是什么意思,arr表示什么。
()
具有更高的优先权,[]
其本身具有更高的优先权*
。因此,()
使arr
指针指向数组,否则变为指针数组。
int (*arr)[20]; // pointer to array of 20 int
int *arr[20]; // array of 20 pointers to int
int arr[][5]=&arr2;
该分配无效。两个原因:
const
指针-因为它是常量,因此无法将其重新分配为指向任何其他地址。从@BLUEPIXY-您想要的是(必须首先修改arr
对指针的定义):
int arr2[5];
int (*arr)[5]=&arr2;
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句