学习了自定义函数,终于可以和指针联系在一起了。
写两数互换时,我就在想为什么这里需要用指针,而在前一段时间学的函数里不需要。
后来才明白,当需要跟改实际参数的时候,形式参数才需要地址,因为只有在同一个房间里才能进行替换,如果房间都不一样就无法替换。
有些时不需地址,因为不需要跟改实际参数,只是在使用他,有得到了一个新的东西。
#include<stdio.h>
//醋和酱油的互换
//如果不加指针 ,相当于把ab的实参拷贝到形参里,更改ab的形参不会影响ab的实参
//当加上指针,相当于一个镜像 把ab的形参改了 ,实际也会发生变化
void Swap(int* x,int* y)//这里是ab的形参 (形式参数)
{
int z=*x;//z=a
*x=*y;//a=b
*y=z;//b=a
//return(x,y);//错误return只能返回一个变量
}
int add(int x,int y)//不需要地址的原因 ,不需要改变实际参数
{
int f=0;
f=x+y;
return f;
}
int main()//这里是ab的实参 (实际参数)
{
printf("互换前\\n");
int a=0;
int b=0;
scanf("%d %d",&a,&b);
int c=add(a,b);
printf("%d\\n",c);
printf("a=%d b=%d",a,b);
Swap(&a,&b);// 有指针时必须加&
printf("互换后\\n");
printf("a=%d b=%d",a,b);
return 0;
}




