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

两者之间有什么区别吗?

foo(int* arr) {} 

foo(int arr[]){}

谢谢

不,两者没有区别。

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

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

 foo(int* arr) {} 

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

 foo(int arr[]) {} 

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

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

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