【发布时间】:2013-01-25 08:38:54
【问题描述】:
我有一个关于返回数组的 C++ 语法问题。当我们传入一个数组时,什么时候可以这样做:
void merge_sort(int input_array[], int size);//notice the first parameter
我知道这行得通:
int* merge_sort(int input_array[], int size){
//do something with input_array
return new int[2]; //dummy array
}
问题:
int[] merge_sort(int input_array[], int size){ //Question is on return type, wont compile
//do something with input_array
return new int[2]; //dummy array
}
return int* 成功。为什么返回 int [] 失败?
【问题讨论】:
-
您知道参数
int input_array[]完全等同于int *input_array吗? -
这在普通的
C中是否合法?不。所以从设计上讲,C++是不合法的。 -
@StoryTeller 这没什么好说的,对任何对 C 和 C++ 有一定了解的人来说都应该是显而易见的,而对于没有 C 和 C++ 知识的人来说则毫无意义。
-
@Dukeling,我也没有印象 OP 是。
-
@delnan 是的,因为我知道这一点,它提出了我的问题。