我真的没有看明白这个答案

img


刚接触c语言,不理解为什么最后输出的是1,而不是6,这个式子的最后不是把6付给了k吗

不是啊
i*j确实是6,但后面还有个==6,也就是判断结果是否等于6,结果是真,真在计算机里就是1

k = i * j == 6
相当于
if (i * j == 6)
k = 1;
else
k = 0;
所以是1

主要考察运算符优先级问题

【以下回答由 GPT 生成】

这段代码输出的是1而不是6的原因是因为等号(==)的优先级高于乘法运算符。所以先进行i * j的乘法运算,得到结果6。然后再将6与6进行相等比较,返回结果为真,即1。

具体的解释如下:

  1. 首先进行乘法运算i * j,得到结果6。
  2. 将6与6进行相等比较,即判断6 == 6。由于6等于6,判断为真。
  3. 真的结果会转换成整型1,所以最终输出的是1。

为了得到想要的结果6,可以修改代码如下:

int i = 2;
int j = 3;
int k = (i * j);
printf("%d", k);

在这个修改后的代码中,我去掉了等号(==),直接将乘法运算的结果赋值给变量k,然后输出k的值。这样就能得到6作为输出结果了。

希望我对你的问题有所帮助。如果你还有其他问题,可以继续提问。



【相关推荐】



如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^

K的结果是后面表达式为真还是为假