C语言,int a=5,b;b=++a*--a;结果b的值为25,为什么不是30?

为什么?b=++a*--a;这句话拆开不应该是:a=a+1=6;a=a-1=5;b=6*5=30?
2025-05-17 20:12:06
推荐回答(5个)
回答(1):

首先。在同一个表达式中 尽量不要对多个变量使用增减运算符

你说 b的值是25的话
b=++a*--a

a=a+1=6
然后--a就是
a=a-1=6-1=5

此刻。前面的棉量++a 也 变成了 5
然后 b=5*5=25

主要就是。这样的问题很常见。不必要去理会。因为编译器的不同他编译的结果是不相同的。
祝你好运~~~

回答(2):

不同的编译器会有不同的结果,取决去编译器的运算顺序。
不要纠结于这样的结果,因为没有唯一的答案。

回答(3):

++a
--a
a×a
顺序

回答(4):

++a;//a=6
--a;//a=5
5*5=25

回答(5):

先执行++然后-- a=5 然后5*5