地址,值传递与址传递
地址:
数据储存的位置。一个编号,代表一个内存空间。可以理解为门牌号。
值传递:
将实参(函数调用中的参数)的值传递给形参变量(函数定义中的参数)。形参和实参各自占据不同的储存空间,因此形参变量的任何改变都不会改变实参的值。
int swap(float x,float y)
{
float temp;
temp=x;x=y;y=temp;
printf("x=%.2f,y=%.2f\n",x,y);//输出形参
}
int main()
{
float x=8.5,y=3,7;
swap(x,y);
printf("x=%.2f,y=%.2f\n",x,y);//输出实参
}
运行结果:
x=3.70,y=8.50
x=8.50,y=3,70
址传递:
将实参数据的存储地址作为参数传递给形参。形参和实参占据同样的存储单元,形参值的改变与会改变实参的值。
所以地址传递方式可以实现调用函数与被调用函数间的双向数据传递。