c函数,参数传递问题

2025-01-05 06:09:29
推荐回答(1个)
回答1:

其实是这样的。函数传参数,都是拷贝过去的
函数声明如下
fun(int 形参)
{
}
函数调用如下
int 实参 = 3;
fun(实参);
传的参数是实参,他的值是3,那么fun中形参就等于3。在函数里面对于形参的修改,都是修改的形参。而实参不变。这就是传值

加入函数声明如下
fun(int *形参)
{
}
函数调用如下
int 实参 = 3;
fun(&实参);
如果调用的时候,传的参数是&实参,那么fun中形参就是一个地址,就是实参的地址,假如是0x12ff7c.那么形参的值就是0x12ff7c。如果你在fun中使用*形参 = 10.那么就是对0x12ff7c的那个地址所存储的信息的修改。就是实参存储地址的内容的修改。也就是说可以改变实参的内容。这就是传址操作。