gpt4 book ai didi

c - C 中的隐式数据类型转换

转载 作者:行者123 更新时间:2023-11-30 19:08:36 25 4
gpt4 key购买 nike

int a=98, b=10;
float c;
c=a/b;

输出:c=9

我知道由于隐式类型转换,c值是 9 而不是 9.8 但后来我遇到了这个问题:

int a,b,c,d;
a=40;
b=35;
c=20;
d=10;
printf("%d",a*b/c-d);

输出:60

现在,如果我们看到方程的优先级是从右到左,并且根据 BODMAS 规则 b/c(35/20) 将首先执行,因此 35/20 = 1.75,然后隐式转换为整数,使其变为 1,然后其余的将跟进,答案必须是 30,但输出是 60,这是正确答案。你能解释一下为什么吗?

最佳答案

C 中 */ 的运算符优先级从左到右:http://en.cppreference.com/w/c/language/operator_precedence

所以a*b将首先完成。相当于编写((a*b)/c)-d

关于c - C 中的隐式数据类型转换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44834212/

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