【发布时间】:2023-01-14 09:28:03
【问题描述】:
#include <stdio.h>
int fun(int x,int y);
int main()
{
int i = 5, j = 2;
fun(i, j);
printf("%d%d", i, j);
return 0;
}
int fun(int x, int y)
{
x = x * x;
y = y * y;
return (x);
return (y);
}
【问题讨论】:
-
你觉得为什么应该打印 254?
-
1) 你不能从一个函数返回多个值 2) C 是 pass-by-价值, 意义副本调用新函数时会生成参数,因此
fun中对x和y的任何更改都不会在main中看到。 -
我很惊讶你能同时获得这两种回报。
-
@matt 你可以很容易地拥有大量无法访问的代码。
-
具有活动警告的编译器可能会对具有忽略该返回值的返回值的函数的调用
fun(i,j);发表评论。使用警告,它们可能会让您意识到调用没有效果,这在 main 中是可见的。这确实回答了你的问题。
标签: c