106.你什么情况用指针当参数,什么时候用引用,为什么?
106.你什么情况用指针当参数,什么时候用引用,为什么?
1.使用引用参数的主要原因有两个
1.程序员能修改调用函数中的数据对象
2.通过传递引用而不是整个数据–对象,可以提高程序的运行速度
2.一般的原则
1.对于使用引用的值而不做修改的函数:
(1)如果数据对象很小,如内置数据类型或者小型结构,则按照值传递;
(2)如果数据对象是数组,则使用指针(唯一的选择),并且指针声明为指向const的指针;
(3)如果数据对象是较大的结构,则使用const指针或者引用,已提高程序的效率。这样可以节省结构所需的时间和空间;
(4)如果数据对象是类对象,则使用const引用(传递类对象参数的标准方式是按照引用传递);
2.对于修改函数中数据的函数:
(1)如果数据是内置数据类型,则使用指针
就为改变实参这个目的而言,指针对于引用的优势在于当你有可能需要传入一个空的概念*(尚未创立的对象,空指针可以表示,而引用无法表示空的概念)的时候
(2)如果数据对象是结构,则使用引用或者指针
(3)如果数据是类对象,则使用引用
(4)如果数据对象是结构。则使用指针或者引用。
也有一种说法认为:“如果数据对象是数组,则只能使用指针”,这是不对的,比如
template<typename T, int N>
void func(T (&a)[N])
{
a[0] = 2;
}
int main()
{
int a[] = { 1, 2, 3 };
func(a);
cout << a[0] << endl;
return 0;
}
参考资料来源:
阿秀
分类:
C++重点 / C++基础语法
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)