【发布时间】:2011-07-26 09:28:52
【问题描述】:
有什么区别
foo(int* arr) {}
和
foo(int arr[]){}?
谢谢
【问题讨论】:
-
哇——今天有很多这类问题!!
标签: c
有什么区别
foo(int* arr) {}
和
foo(int arr[]){}?
谢谢
【问题讨论】:
标签: c
不,两者没有区别。
【讨论】:
C 编译器没有区别。但是对于阅读代码的程序员来说是有区别的。
这里,arr 是一个指向整数的指针(可能用于从函数返回结果):
foo(int* arr) {}
这里,arr 是指向数组中第一个整数的指针(可能用于将数字列表传入和/或传出函数):
foo(int arr[]) {}
另外,指定函数的返回类型也会有所帮助。
【讨论】:
语义相同,但对于外部程序员来说,它更容易理解:第二个函数将数组作为参数。对于第一个来说,它不可能那么直接。
【讨论】:
您必须取消对第一个值的引用...
【讨论】:
*(array + 3) 与 pointer[3] 相同。