数组名本质是指针,可通过指针操作实现冒泡排序。利用*(arr + j)访问元素,避免下标运算,提升效率;函数传参时传递数组首地址,直接修改原数组,增强内存访问理解。

在C++中,数组和指针本质上是紧密相关的——数组名本身就是一个指向首元素的指针。利用这一特性,我们可以用指针操作数组元素,实现高效的排序算法。下面以常见的冒泡排序为例,展示如何结合数组和指针完成排序。
使用指针遍历并排序数组
假设我们要对一个整型数组进行升序排序。通过指针访问数组元素,可以避免直接使用下标,使代码更灵活。
#includeusing namespace std; void bubbleSort(int arr, int n) { for (int i = 0; i < n - 1; ++i) { for (int j = 0; j < n - i - 1; ++j) { // 使用指针比较相邻元素 if ((arr + j) > (arr + j + 1)) { // 交换值 int temp = (arr + j); (arr + j) = (arr + j + 1); *(arr + j + 1) = temp; } } } }
void printArray(int arr, int n) { for (int i = 0; i < n; ++i) { cout << (arr + i) << " "; } cout << endl; }
主函数测试排序功能
定义一个数组,并将其地址(即指针)传入排序函数。
int main() {
int data[] = {64, 34, 25, 12, 22, 11, 90};
int n = sizeof(data) / sizeof(data[0]);
cout zuojiankuohaophpcnzuojiankuohaophpcn "排序前: ";
printArray(data, n);
bubbleSort(data, n); // 数组名data即为指向首元素的指针
cout zuojiankuohaophpcnzuojiankuohaophpcn "排序后: ";
printArray(data, n);
return 0;
}
立即学习“C++免费学习笔记(深入)”;










