它们之间有什么重大区别吗?对我来说它看起来一样......并且根据一些谷歌搜索它似乎也一样。只是想在这里确认..
void getAnything(int arr [])
{
arr[0] = 2;
}
与
void getAnything(int *arr)
{
arr[0] = 2;
}
主
int main()
{
int arr [1];
getAnything(arr);
}
答案 0 :(得分:1)
它是一样的。事实上,我会有像
这样的东西void getAnything(int arr [10])
{
arr[0] = 2;
}
也会一样。
答案 1 :(得分:0)
是的,它们恰好相同:
[C++11: 8.3.5/5]:
[..] 确定每个参数的类型后,“T
数组”或“返回T
的函数”类型的任何参数被分别调整为“指向T
”或“指向函数返回T
的指针”。 [..]
它很混乱,因为这意味着你的论点实际上不需要与数组有任何关系,但是你去了;谢谢,C!它还有助于鼓励那些数组成为指针的神话,很遗憾。
以下所有内容:
void foo(int[] x);
void foo(int[5] x);
void foo(int[42] x);
实际上是指这个:
void foo(int* x);