gpt4 book ai didi

c - 请解释这个简单的 C 程序的输出

转载 作者:行者123 更新时间:2023-11-30 21:02:18 25 4
gpt4 key购买 nike

int i = 2, j = 3, k, l ;
float a, b ;
k = i / j * j ;
l = j / i * i ;
a = i / j * j ;
b = j / i * i ;
printf( "%d %d %f %f", k, l, a, b ) ;
}

这是来自 yashwant kanetkar 的一个简单的 C 程序,但我无法理解答案。如果我们编译这个程序,我得到的输出是

0 2 0.00000 2.00000

这是一个非常简单的程序,但我无法解释输出,可能是我对关联性感到困惑。/和 * 都具有 L 到 R 关联性,并且只有/具有明确的左操作数(L 到 R 关联性的必要条件),它会先执行。但在这种情况下答案是不同的。

最佳答案

simple associativity of the operators ,没什么复杂的。

我认为是"integer division"属性让您感到困惑。

  1. k = i/j * j ; 答案为 0,因为先进行整数除法 (i/j == 0)。
  2. l = j/i * i ;答案2,因为先进行整数除法。 (j/i == 1)
  3. a = i/j * j ; 答案 0,(提升为 float),因为正如我之前提到的,首先进行整数除法。
  4. b = j/i * i ;,答案 2,(提升为 float),因为先进行整数除法,前面也提到过。
<小时/>

注:A gentle version of what Mr. Haccks said :请避免引用该特定书籍。

关于c - 请解释这个简单的 C 程序的输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31118910/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com