C语言不能在函数参数前加&,能加&的是C++语言。
在C++语言里,类型后加&表示引用,如
int a;
int & b = a;
表示b引用a,b实际上就是a的别名。修改b的值也会导致a的值被修改。
函数传参时,加&表示把实参直接传递给函数,而不加&表示是传拷贝。
传引用:将实参直接传给形参,对于复杂点的较大的
结构体或类类型,可以省去效率低的拷贝过程,但如果传的是非const引用,那么在函数内部对形参的修改将会导致实参也会被修改。
传值:将实参拷贝一份传给形参,因此对于传递大点的
数据结构时效率相对较低,对形参的修改不会影响外部实参。
C语言中没有引用的概念,都是以指针处理。