gpt4 book ai didi

c - C解释中的运算符优先级

转载 作者:太空宇宙 更新时间:2023-11-04 01:20:18 26 4
gpt4 key购买 nike

我有以下代码:

#include<stdio.h>
void main(){
int x;
x=1%9*4/5+8*3/9%2-9;
printf("%d \n", x);
}

程序的输出是-9。当我尝试根据运算符优先级(*/%,Multiplication/division/modulus,left-to-right) 分解代码时,结果是-8

下面是代码的分解:

x=1%9*4/5+8*3/9%2-9;
x=1%36/5+24/9%2-9;
x=1%7+2%2-9;
x=1+0-9;
x=-8;

谁能解释一下输出是 -9

最佳答案

您似乎认为模运算的优先级低于乘法和除法,但实际上并非如此。而不是

x = (1 % ((9 * 4) / 5)) + (((8 * 3) / 9) % 2) - 9;

你所拥有的表情才是真正代表

x = (((1 % 9) * 4) / 5) + (((8 * 3) / 9) % 2) - 9;

第一个加数中的模在乘法和除法之前应用。

关于c - C解释中的运算符优先级,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45399988/

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