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;
}
参考资料来源:
阿秀
标签:const,对象,106,引用,使用,数据,指针 From: https://www.cnblogs.com/codemagiciant/p/17544959.html