在C语言中,函数的形参与实参之间的值传递是什么意思?函数调用时如主函数中为swap(a,b),而从函数为
答案:2 悬赏:30 手机版
解决时间 2021-03-16 14:22
- 提问者网友:你给我的爱
- 2021-03-15 18:56
在C语言中,函数的形参与实参之间的值传递是什么意思?函数调用时如主函数中为swap(a,b),而从函数为
最佳答案
- 五星知识达人网友:归鹤鸣
- 2021-03-15 20:08
以int 型举例
void Swap(int *a, int * b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void Swap1(int a, int b)
{
int temp = a;
a =b;
b = temp;
}Swap(int *, int *);称之为实参 实际传递的是 a和 b 的地址 啊 , 在调用a与b 的值(*a)使用的是原来的数 下面的 x,y; a , b 的值是x与y 的内存地址
swap1(int ,int); 称之为形参 实际传递的是 a 和b 的值,这里的a和b 与xy没关系, 只是x与y 的一个副本。
int swap_test()
{
int x,int y;
x = 3; y = 5;
Swap(&x,&y);
//此时x = 5; y = 3;
Swap1(x,y);
//此时x = 5; y = 3;
return 1;
}
void Swap(int *a, int * b)
{
int temp = *a;
*a = *b;
*b = temp;
}
void Swap1(int a, int b)
{
int temp = a;
a =b;
b = temp;
}Swap(int *, int *);称之为实参 实际传递的是 a和 b 的地址 啊 , 在调用a与b 的值(*a)使用的是原来的数 下面的 x,y; a , b 的值是x与y 的内存地址
swap1(int ,int); 称之为形参 实际传递的是 a 和b 的值,这里的a和b 与xy没关系, 只是x与y 的一个副本。
int swap_test()
{
int x,int y;
x = 3; y = 5;
Swap(&x,&y);
//此时x = 5; y = 3;
Swap1(x,y);
//此时x = 5; y = 3;
return 1;
}
全部回答
- 1楼网友:拾荒鲤
- 2021-03-15 21:36
每个函数 会给变量 重新做一个副本 比如
int a,b;
void wap(int a,int b); 可以用 wap( & a,& b) 取 a,b 的地址 传递 这样不会创建新变量
{
......
}
void wap (int a,int b) // 这里a,b 的地址和全局main的 a,b地址不同 只是一个副本 修改是不会影响主函数
{
a=a+b;
b = a - b;
a = a - b;
}
int a,b;
void wap(int a,int b); 可以用 wap( & a,& b) 取 a,b 的地址 传递 这样不会创建新变量
{
......
}
void wap (int a,int b) // 这里a,b 的地址和全局main的 a,b地址不同 只是一个副本 修改是不会影响主函数
{
a=a+b;
b = a - b;
a = a - b;
}
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯