之间有什么区别吗?
foo(int* arr) {}
和
foo(int arr[]){}
?
由于
答案 0 :(得分:11)
不,两者之间没有区别。
答案 1 :(得分:4)
C编译器没有区别。虽然程序员读取代码有所不同。
这里,arr是一个指向整数的指针(可能用于返回函数的结果):
foo(int* arr) {}
这里,arr是指向数组中第一个整数的指针(可能用于传入和/或传出函数的数字列表):
foo(int arr[]) {}
另外,指定函数的返回类型会有所帮助。
答案 2 :(得分:1)
语义是相同的,但对于外部程序员来说,理解起来更容易,更直接:第二个函数将数组作为参数。对于第一个来说,它不会那么直接。
答案 3 :(得分:-1)
您必须将值取消引用到第一个...