如果函数传参的目的仅仅是传参而不是修改参数的值:
如果数据对象很小,比如是内置数据类型,或小型的struct,则使用值传递;
如果数据对象是数组,则只能使用指针,并且将指针声明为指向const的指针(const int*、int const*),保证指针所指向内容不会被修改;
如果数据对象是一个比较大的struct,则应该使用const指针或者const引用,来防止参数传递时发生结构体的复制,导致程序效率下降;
如果数据对象时类对象,则使用const引用;
如果函数传参的目的包括了修改传入的参数的值:
如果数据对象是c++内置数据类型,则使用指针,这将增加代码的可读性(&x);
如果对象是数组,则只能使用非const的指针;
如果数据对象是struct,则可以使用指针或引用;
如果数据对象是class,则使用引用。