在VC ++ 2010中将数组作为参数传递时编译器错误

时间:2010-12-08 19:12:25

标签: c++ arrays visual-c++ compiler-errors quicksort

这可能是一个新手问题,因为我只是在学习编程。我正在学习QuickSort algos,我正在尝试将一个int数组作为参数传递给我的函数quickSort()。当我尝试在VC ++ 2010中编译时,我遇到了编译器错误。

我已经查找了如何将数组作为参数传递,并试图反映他们所做的事情,但它似乎没有用。这里:Here是我查找的地方,它是页面的最后一部分(一直滚动到底部)。我试图传递该文章中概述的数组,但我仍然遇到编译错误。请参阅下面的代码blurb(不完整),例如我正在做的事情和编译错误。有什么建议吗?

int aTest[7] = {7, 5, 9, 3, 4, 8, 6};
int left = 0;
int right = 6; 
quickSort(aTest, left, right);   //this is line 16 referenced in the compiler error
void quickSort(int aTest[], int left, int right)

//main.cpp(16): error C2664: 'quickSort' : cannot convert parameter 1 from 'int [7]' to 'int'
//          There is no context in which this conversion is possible

2 个答案:

答案 0 :(得分:2)

据我所知,这是C,而不是C ++。 如果我理解正确,你应该把原型放在“第16行”之前 根据原型,我的意思是void quickSort(int aTest[], int left, int right)行。

答案 1 :(得分:1)

正如anatolyg所说,它是原型顺序。编译器假设quicksort采用单个int参数。尝试设置最高警告级别,您应该看到没有定义快速排序的警告。