转自 cnblogs.com/51try-again/p/10206374.html
1.值传递
值传递,就是把你的变量的值传递给函数的形式参数,实际就是用变量的值来新生成一个形式参数,因而在函数里对形参的改变不会影响到函数外的变量的值。
2.地址传递
地址传递,就是把变量的地址赋给函数里形式参数的指针,使指针指向真实的变量的地址,因为对指针所指地址的内容的改变能反映到函数外,能改变函数外的变量的值。
3.引用传递
引用传递,实际是通过指针来实现的,能达到使用的效果如传址,可是使用方式如传值。
说几点建议:如果传值的话,会生成新的对象,花费时间和空间,而在退出函数的时候,又会销毁该对象,花费时间和空间。
因而如果int,char等固有类型,而是你自己定义的类或结构等,都建议传指针或引用,因为他们不会创建新的对象。
代码
#include<stdio.h>
void change(int*a, int&b, int c)
{
c=*a;
b=30;
*a=20;
}
int main ( )
{
int a=10, b=20, c=30;
change(&a,b,c);
printf("%d,%d,%d,",a,b,c);
return 0;
}
输出结果
20 30 30