【发布时间】:2015-10-15 20:52:18
【问题描述】:
不允许引用数组。我知道在 C++ 中这是非法的。 但是,还有其他方法可以做到这一点吗? 我确定有,但我想不通。
#include <iostream>
using namespace std;
#define UBound(n) sizeof(n) / sizeof(n[0]);
void SortArray(int & Arr[]) {
int ArrayLength;
ArrayLength = UBound(Arr);
int Min, Temp;
for (int i = 0; i = ArrayLength; i++) {
for (int j = 0; j = ArrayLength; j++) {
if (Arr[i+1] < Arr[i]){
Temp = Arr[i+1];
Arr[i+1] = Arr[i];
Arr[i] = Temp;
}
}
}
}
void main() {
int numArray[9] = { 9, 7, 6, 8, 4, 5, 3, 2, 1 };
SortArray(numArray);
}
最终功能:
template < size_t I >
void SortArray(int(&Arr)[I]) {
int Min, Temp;
for (int i = 0; i < I - 1; i++) {
for (int j = 0; j < I - 1; j++) {
if (Arr[j+1] < Arr[j]){
Temp = Arr[j+1];
Arr[j+1] = Arr[j];
Arr[j] = Temp;
}
}
}
}
感谢大家的回答。
【问题讨论】:
-
为什么你不使用 void SortArray(int *Arr) ?
-
另一种方法来做什么?您要解决的问题是什么?目前尚不清楚引用数组与您显示的代码之间的关系。
-
main必须在 c++ 中返回int。 -
您的问题实际上很清楚,但标题具有误导性并且大多数代码无关紧要。您可能应该将您的问题简化为“参考数组”问题
-
你应该阅读它,如果你的老师正在做真正的 C++,他们应该告诉你。它基本上是一个动态数组,您可以向其中添加元素,删除它们等。它可以作为引用传递(因为它是一个常规的 C++ 对象),这是一种更方便的隐藏指针。这样做的 C 方式是传递指向第一个元素的指针和数组中元素的总数。
标签: c++ bubble-sort