传值 传地址 传引用 的区别

传值 传地址 传引用

1 传值
优点: 函数的副作用不会影响外部的实参 ;代码可读性较高

缺点: 传参效率低 ; 不能通过形参改变实参 ,对实参有保护作用

 void swap(int x,int  y){
  int temp=x;
   x=y;
   y=temp;  
}

2 传地址
优点: 传参效率高 传地址只需要4个字节(确定) 传值变量大小不确定,有可能占很大空间; 可以通过形参改变实参

缺点: 指针不安全,可读性差

void  swap(int *x,int *y){
  int temp=*x;
*x=*y;
*y=temp;
}

备注: 优点和缺点不是固定的属性,随着应用场景的改变 ,优点可能变成缺点 ,缺点也可能变成优点

3 传引用
优点: 兼并了传值和传指针的优点
1. 一方面拥有指针的高传参效率
2. 另一方面拥有传值的的高可读性.
3. 而且比传指针更安全,可以通过形参来改变实参.

void swap(int& x, int& y){
	int temp = x;
	x = y;
	y = temp;
}
int main(){
	int a = 20;
	int b = 30;
	swap(a, b);
	printf("%d\n", a);
	printf("%d\n", b);
	system("pause");
	return 0;
}
已标记关键词 清除标记
相关推荐
©️2020 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页