我的任务是通过传递指针来编写一些排序函数。不幸的是,指针只是我的大脑似乎无法理解的那些概念之一。
这是电话:
int size = 10000;
int* data = new int[size];
//omitted code that populates array for the sake of space
selectionSort(data, data+size);
这是我对该功能的错误尝试:
void selectionSort(int* first, int* last) {
for (int* i = first; i < last-1; i++) {
int* min = i;
for (int* j = i+1; j < last; j++) {
if (j < min) {
min = j;
}
int* temp = i;
i = min;
min = temp;
}
}
}
基本上,当我将一个指针与另一个指针进行比较或调整指针时,我无法弄清楚会发生什么。它是在调整/比较它所指向的值还是在比较实际的指针本身?
任何帮助表示赞赏。干杯。