函数的值传递和指针传递的区别
1 #include <iostream> 2 using namespace std; 3 4 //函数的值传递 5 template<typename T> 6 void swapValue(T a, T b){ 7 cout<<"值传递函数开始前a = "<<a<<", "<<"b = "<<b<<endl; 8 T temp; 9 temp = a; 10 a = b; 11 b = temp; 12 cout << "值传递函数结束在函数内部打印a = " 13 <<a<<", "<<"b = "<<b<<endl; 14 } 15 16 //函数的指针传递 17 template<typename T> 18 void swapPoint(T *a, T *b){ 19 cout<<"指针传递函数开始前a的地址为"<<a<<", b的地址为"<<b<<endl; 20 cout<<"指针传递函数开始前a的值为"<<*a<<", b的值为"<<*b<<endl; 21 T temp = *a; 22 *a = *b; 23 *b = temp; 24 cout<<"指针传递函数开始后函数内打印a的地址为" 25 <<a<<", b的地址为"<<b<<endl; 26 cout<<"指针传递函数开始后函数内打印a的值为" 27 <<*a<<", b的值为"<<*b<<endl; 28 } 29 30 int main() { 31 int a = 4; 32 int b = 2; 33 swapValue<int>(a, b); 34 cout << "swapValue函数结束后打印a = " 35 <<a<<", "<<"b = "<<b<<endl; 36 swapPoint<int>(&a, &b); 37 cout<<"swapPoint函数结束后打印a的地址为" 38 <<a<<", b的地址为"<<b<<endl; 39 cout<<"swapPoint函数开结束后打印a的值为" 40 <<&a<<", b的值为"<<&b<<endl; 41 return 0; 42 }
打印输出结果:
主要是给自己看的,所以肯定会出现很多错误哈哈哈哈哈
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律