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;
}

参考资料来源:

阿秀

posted @   CodeMagicianT  阅读(90)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示