【发布时间】:2014-07-18 14:05:41
【问题描述】:
我有一个 c 函数接收数组的指针作为它的一个参数。
由于传递一个数组实际上是它的第一个元素的指针,所以数组的指针应该是指针的指针。
int arr[]={0,1,2,3};
int main(){
receiveArray(arr);
receiveArrayPtr(&arr);
}
int receiveArray(int *arrPara){....}
int receiveArrayPtr(int **arrPtrPara){....} //Why cannot do this?
错误信息是
“预期为‘int **’,但参数类型为‘int ()[4]’
void receiveArrayPtr(int*);"
想知道为什么
【问题讨论】:
-
数组不是指针。重复:数组不是指针。
-
int **p;:*p的类型是int *但数组顶部的地址是int0的值,而不是指向int的指针。