这根函数的实际动作有关,比如你在func里改变的参数的值,你希望反馈到调用方应该引用,希望对调用处无影响应该申明为传值。
如果你希望引用并且不希望func改变参数的值应该申明为const 引用。参数的申明并不能主宰程序的命运,而是看你函数的具体动作和调用方的动作。
你可以把引用简单的理解为指针。
int a1=10; char b1='A'; func(a1,b1);
如果func形参不是引用类型,那么func中使用的a和b,实际上是a1和b1的副本。当func中处理完a和b后,并不会影响到func外面的a1和b1.
如果func形参是引用类型,那么func中使用的a和b,实际上就是a1和b1。当func中处理完a和b后,处理结果会影响到func外面的a1和b1。
形参参数传递呢,在栈中会重新分配内存,而传递引用了 就不需要重新分配内存了