在学习C++的过程中有些新手可能听说了C++传引用减少拷贝次数增快程序速度,然后就会去一股脑全部使用引用
这篇博客就是来简单说明一下让新手有些了解
本文仅作本人经验所记,并不是很全面
传值
这是一般学习C++时接触的第一种传参方式比如这样
int add(int a,int b){
return a+b;
}
传值会有一定的损耗 因为需要将传入的参数复制一遍再传入函数中
参数的值只能传入 不能传出
这个一般适用于 可以轻松复制的类型并且足够的小 比如 int、float、double 之类的
传引用
在需要操作修改外部的值的时候就需要传引用来解决了
void add(int& a,int& b,int& c){
c = a+b;
}
这样就减少了复制的操作
但是这样并不是适合于所有的 最好不要传原始数据类型 这样可能会阻止编译器优化
适用于那些 自定义的类
传const引用
这个适用于不修改传入参数的值,保证其不被改变
int add(const int& a,const int& b){
return a+b;
}
传指针
形参为指向实参地址的指针,当对形参的指向操作时,就相当于对实参本身进行的操作
void add(int* a,int* b,int* c){
*c = *a+*b;
}
提示:编译器并不总是遵循你指定的参数传递约定
About this Post
This post is written by JinHong Zeng, licensed under CC BY-NC 4.0.