形参无法直接改变实参,只有通过指针来获得实参的存储地址。
然后通过地址来间接地对地址中实参的值进行操作。例如:
#include
fun(int *c)
{
*c=*c+1;
}
main()
{
int a=1;
fun(&a);
printf("%d",a);
}
本例中主函数 main() 将 a 的地址赋给了自定义函数 fun()
然后自定义函数 fun() 通过对取 a 的地址中的值并加 1
最后又存储到 a 的地址中,实现了对实参 a 的改变!
形参 实参
不明白 此参彼参一样哇
参数什么时候即可以是形参也可以是实参
不过话说回来,C里全部都是形参,没有实参
传指针的话,指针本身还是以形参方式出现,只不过提供一个地址让你可以修改罢了
你指C语言?形参不可能改变实参。C采用的是值传递,有去无回。如果你想间接实现,可以传指针进去。
1. 使用引用传递或者指针传递的时候
void swap(int& a,int& b)
{
int c = a;
a = b;
b = c;
}