C++Note 案例 冒泡排序
案例:值传递 地址传递
函数形参为变量 即值传递 改变形参不会改变实参
函数形参为指针 即地址传递 间接访问实参地址 改变形参会改变实参
1 #include <iostream> 2 using namespace std; 3 4 //冒泡排序函数 参数1 数组的首地址 参数2 数组长度 5 void bubbleSort(int* arr, int n) 6 { 7 for (int i = 0; i < n - 1; i++) 8 //外循环 执行(n - 1)(数组长度 - 1) 次 9 { 10 for (int j = 0; j < n - 1 - i; j++) 11 //内循环 每次冒泡执行次数 得出一个最大值到数组末尾 12 { 13 //如果j > j + 1 交换数字 14 if (arr[j] > arr[j + 1]) 15 { 16 int temp = arr[j]; 17 arr[j] = arr[j + 1]; 18 arr[j + 1] = temp; 19 } 20 } 21 } 22 cout << "2:" << &arr[0] << endl; 23 } 24 //打印数组函数 25 void printArray(int* arr, int n) 26 { 27 for (int i = 0; i < n; i++) 28 { 29 cout << arr[i] << " "; 30 } 31 cout << endl; 32 cout << "3:" << &arr[0] << endl; 33 } 34 int main() 35 { 36 //1.创建数组 37 int arr[10] = { 0,2,4,3,1,9,6,7,5,8 }; 38 cout << "1:" << &arr[0] << endl; 39 int n = sizeof(arr) / sizeof(arr[0]); 40 //2.创建函数,实现冒泡排序 41 bubbleSort(arr, n); 42 //3.打印排序后的数组 43 printArray(arr, n); 44 cout << "4:" << &arr[0] << endl; 45 //1 2 3 4 地址相同 函数通过访问地址改变了实参的数值 46 system("pause"); 47 return 0; 48 }
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)