形参实参的问题,请你教教我吧,谢谢。为什么下滑八成是保存到仓库?
“下滑八成是保存到仓库”是什么鬼
形参实参是我上大学后才知道这么个说法的。而不知道这一点完全不影响我编程序。
这只是个说法而已。
比如
void fun(int a, int b) { balabala }
int main()
{
int x, y;
fun(x, y);
}
这里,x y叫做实参,a b叫做形参
看下面一段代码
#include <stdio.h>
void _swap(int a, int b)
{
int temp=a;
a=b;
b=temp;
}
int main(void)
{
int a=5,b=10;
_swap(a,b);
printf("a=%d b=%d",a,b);
return 0;
}
在这一段代码运行下来发现,输出的结果a还是等于5,b还是等于10,他们的值并没有交换.
这是为什么呢?
从内存的方面分析,main函数的a,b存放在一个地址空间上,而函数中的a和b又是另外一个空间的a,b,并不是main函数中的a,b的地址,只是把他们的值传递过来了,最后进行交换,但是main函数中的a,b并没有发生变化。
那要交换他们的值就必须用到指针,把他们的地址传递进去就可以经行交换了。
#include <stdio.h>
void _swap(int *a,int *b)
{
int temp=*a;
*a=*b;
*b=temp;
}
int main()
{
int a=5,b=10;
_swap(&a,&b);
printf("a=%d b=%d\n",a,b);
return 0;
}
在这段代码里a,b的值就发生了改变,应为我们对a和b,的地址进从了操作,从而改变了他们的值。