当前位置:   article > 正文

传值 传地址 传引用 的区别_c语言传参传地址和传引用的区别是什么

c语言传参传地址和传引用的区别是什么

传值 传地址 传引用

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

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

 void swap(int x,int  y){
  int temp=x;
   x=y;
   y=temp;  
}
  • 1
  • 2
  • 3
  • 4
  • 5

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

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

void  swap(int *x,int *y){
  int temp=*x;
*x=*y;
*y=temp;
}
  • 1
  • 2
  • 3
  • 4
  • 5

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

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;
}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
声明:本文内容由网友自发贡献,转载请注明出处:【wpsshop博客】
推荐阅读
相关标签
  

闽ICP备14008679号