【问题标题】:C programming, manipulating functions' arguments and return [closed]C编程,操作函数的参数和返回[关闭]
【发布时间】:2020-08-13 16:22:21
【问题描述】:

全部

输出不应该是 -24 吗? 结果我得到 -4 并且无法得到原因。

   #include <stdio.h>
   int g (int x, int y) {
   x = x + y;
   int z = 2 * x - y;
   return z;
   }


int main()
{
    printf("Hello World%d\n", g(3, -10));

return 0;
 }

【问题讨论】:

  • 不,-4 是正确的
  • 原因是小学数学。 2 * (3 + -10) - (-10) = ?
  • 返回正确

标签: c function return arguments pass-by-value


【解决方案1】:

你把函数称为

g(3, -10)

这意味着在函数内部,变量x 以值3 开始,y 以值-10 开始。

现在,如果我们在“纸”上做算术,我们首先有

x = x + y;

相同
x = 3 + -10;

相同
x = -7;

那么你有

int z = 2 * x - y;

相同
int z = 2 * -7 - -10;

相同
int z = -14 + 10;

相同
int z = -4;

然后你返回 z 的值,它的值是 -4

这是大多数小学教授的所有基础数​​学。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-11-23
    • 1970-01-01
    • 2016-12-22
    • 1970-01-01
    • 2022-06-15
    • 2011-05-15
    • 2018-05-10
    相关资源
    最近更新 更多