C语言(++b)+(++b)+(++b));

int b=3;printf("%d尀n",(++b)+(++b)+(++b));结果等于16求解析...
2025-04-07 10:08:30
推荐回答(5个)
回答1:

首先进行第一步“a=5”:将5赋给a,这样实现了a=5

然后进行第二步“b=a++”,由于++为后缀,所以先将a值赋给b,结果b=5,然后进行a++运算,a=6

然后进行第三步“c=--a-b++”,首先--为前缀,所以先运算--a,结果a=5,由于++为后缀,所以接下来先运算c=a-b,结果c=5-5.为0,最后进行b++运算,结果b=6

最后一步“d=(a++)-(++b)+c--”,先运算括号里面的“a++”和“++b”,结果a=6,b=7,由于--为后缀,所以先运算d=a-b+c,也就是d=6-7+1=0,最后运算c--。结果c=-1

以上是运算结果,考的主要是运算的优先级,是这样的,看见括号里面的,先运算括号里面的,没有括号的,你要看++或是--,是前缀,还是后缀,如果是前缀的话,先运算++或是--运算,如果是后缀的话,你就先运算整个式子,运算完了整个式子,再运算++或是--运算,至于具体的例子,我给你的计算过程,你可以自己结合着体会一下,有什么不明白的,就追问我。

回答2:

printf("%d\n",(++b)+(++b)+(++b)); 从左向右, 第一个 ++b b= 4 第二 ++b b=5 然后由于 从左向右的原因, 变成了 5+5+(++5) 先算左边的5+5 产生临时值 10 + 最后的 ++b 为 6 结果 = 16

回答3:

运算的顺序是从左到右:
第一次:++b —— b = 4
第二次:++b —— b = 5
++b + ++b —— result = 5 + 5 = 10

第三次:++b —— b = 6
10 + ++b —— result = 16

回答4:

结果为16没错,但运算顺序不一定是从左至右,他们优先级相同,尽量避免这种情况,当一个变量多次出现在同一个表达式里时,不要将增量或减量运算符运用到它的上面。

回答5:

...不是15吗?