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 }
复制代码

 

posted on   廿陆  阅读(6)  评论(0编辑  收藏  举报

相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示