【发布时间】:2021-11-25 14:06:05
【问题描述】:
我是刚接触c++两天的新手。
我可以像我写的那样定义多个 void 函数吗? 我应该在哪里修改以实现上述内容?
在调用 callbyvalue 之前:1, 2 调用 callbyvalue 后:1, 2 调用 swap 之前:3、4 调用swap后:4, 3
void Exchange1(int a, int b)
{
int temp1;
temp1 = a;
a = b;
b = temp1;
}
void Exchange2(int* x, int* y)
{
int temp2;
temp2 = *x;
*x = *y;
*y = temp2;
int main()
{
int a, b, x, y;
a = 1;
b = 2;
x = 3;
y = 4;
printf("Call-by-value before : %d , %d\n", a, b);
Exchange1(a, b);
printf("Call-by-value after : %d , %d\n", a, b);
printf("swap before : %d %d\n", x, y);
Exchange2(&x, &y);
printf("swap after : %d %d\n", x, y);
return 0;
}```
【问题讨论】:
-
对不起,你的问题到底是什么?我不明白是什么让你困惑
-
不清楚您的问题到底是什么。当然,您可以定义多个函数。你就是这么做的。 “我应该在哪里修改以实现上述内容?”什么是“上面”?
-
Exchange1正在处理局部变量。当函数返回时,它对函数内部的a和b的作用将不可见。您可能的意思是使用void Exchange1(int& a, int& b)引用a和b。 -
“我想实现类似...”的代码不是已经做了吗?
Exchange1不交换任何东西,Exchange2确实交换了值。这就是你预期的输出,我认为这就是代码的作用 -
这在我看来像 C。您使用的是哪种 C++ 学习资料?