#include <stdio.h>
void swap(int *a,int *b)
{
int *t;
t=a;a=b;b=t;
}
main()
{
int i=3,j=5,*p=&i,*q=&j;
swap(p,q);printf("%d %d\n",*p,*q);
}
void swap(int *a,int *b) 中的a、b是形参,swap(p,q)中的p、q是实参。
至于为什么“参数可以由实参传向形参,而不能逆反传递”,你可以这样理解:
我们不妨把函数比作戏剧的剧本,把形参比做剧本中的人物;当我们要表演此戏剧的时候,我们肯定会让真实的演员(实参)去扮演(替换)剧本里的角色(形参),而绝不可能用剧中人去替代现实的演员!理解了上面的道理,你还会有问题吗? |