foo(int * arr)和foo(int arr [])之间有什么区别?

时间:2011-03-30 20:15:22

标签: c

之间有什么区别吗?
foo(int* arr) {}

foo(int arr[]){}

由于

4 个答案:

答案 0 :(得分:11)

不,两者之间没有区别。

答案 1 :(得分:4)

C编译器没有区别。虽然程序员读取代码有所不同。

这里,arr是一个指向整数的指针(可能用于返回函数的结果):

foo(int* arr) {}

这里,arr是指向数组中第一个整数的指针(可能用于传入和/或传出函数的数字列表):

foo(int arr[]) {}

另外,指定函数的返回类型会有所帮助。

答案 2 :(得分:1)

语义是相同的,但对于外部程序员来说,理解起来更容易,更直接:第二个函数将数组作为参数。对于第一个来说,它不会那么直接。

答案 3 :(得分:-1)

您必须将值取消引用到第一个...