C++Note 引用上
引用的基本使用:
1 #include <iostream> 2 using namespace std; 3 4 int main() 5 { 6 //引用的基本使用 7 //作用 给变量取别名 8 //语法:数据类型 &别名 = 原名 9 int a = 10; 10 //创建引用 11 int& b = a;//别名b操纵的也是 a的数值 12 cout << " a = " << a << endl;//10 13 cout << " b = " << b << endl;//10 14 b = 100; 15 cout << " a = " << a << endl;//100 16 cout << " b = " << b << endl;//100 17 system("pause"); 18 return 0; 19 }
引用注意事项:
**引用必须初始化
**引用在初始化后 不可以改变
1 #include <iostream> 2 using namespace std; 3 4 int main() 5 { 6 int a = 10; 7 int b = 20; 8 //int %c; //错误 引用必须初始化 9 int& c = a;//一旦初始化 就不可以更改 10 c = b;//赋值操作 不是更改引用 将20赋给c a和c指向同一个变量位置 11 cout << " a = " << a << endl;//20 12 cout << " b = " << b << endl;//20 13 cout << " c = " << c << endl;//20 14 system("pause"); 15 return 0; 16 }
引用做函数参数:
作用:函数传参时,可以利用引用的技术让形参修饰实参
优点:可以简化指针修改实参
1 #include <iostream> 2 using namespace std; 3 4 //交换函数 5 //1.值传递 6 void mySwap01(int a, int b) 7 { 8 int temp = a; 9 a = b; 10 b = temp; 11 cout << "Swap01 a = " << a << endl;//20 12 cout << "Swap01 b = " << b << endl;//10 13 } 14 //2.地址传递 15 void mySwap02(int* a, int* b) 16 { 17 int temp = *a; 18 *a = *b; 19 *b = temp; 20 cout << "Swap02 a = " << *a << endl;//20 21 cout << "Swap02 b = " << *b << endl;//10 22 } 23 //3.引用传递 24 void mySwap03(int& a, int& b)// &a中的a相当于Main中变量a的别名 别名可以与原名相同 25 { 26 int temp = a; 27 a = b; 28 b = temp; 29 cout << "Swap03 a = " << a << endl;//20 30 cout << "Swap03 b = " << b << endl;//10 31 } 32 33 int main() 34 { 35 int a = 10; 36 int b = 20; 37 // mySwap01(a, b);//值传递:实参没有发生改变 a = 10 b = 20 38 // mySwap02(&a, &b);//地址传递:形参会修改实参 a = 20 b = 10 39 mySwap03(a, b); // 引用传递:形参会修改实参 a = 20 b = 10 40 cout << "Main a = " << a << endl; 41 cout << "Main b = " << b << endl; 42 system("pause"); 43 return 0; 44 }
通过引用参数产生的效果同按地址传递是一样的 引用的语法更清楚简单
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)