b=a--和b=(a--)这两句的输出结果为什么一样?

我理解的是第二句加括号应该是先运算括号里的a--再赋值给b,请问错在哪里

C语言中 表达式 是一个重要的基本表达式。

a-- 是一个自减表达式,先把a的结果作为表达式的结果并赋给b,然后再将a变量的值减1。

 --a也是一个自减表达式,a的值减1作为表达式的结果并赋给b。

注意体会这两者的细微差别,回到题目,a--是否加括号,不影响表达式的求值,b的值都等于a。

如果有帮助,请采纳答案好吗,谢谢!

= :赋值运算符的运算优先级是最低的啊,无论加不加括号都是先运算右边的a--

b=(1+1) 和 b=1+1 的结果当然是一样的,同理 b=a--和b=(a--)

和运算符优先级有关。你写的两个表达式其实是同一模一样的。

你是不是混淆了概念,a--和--a是不一样的,但是a--加不加括号并不影响他最终的值啊

b=a--,--在后,所以先将a的值赋给b,然后a再自减,而b=(a--)因为括号所以a自减后再将值付给b,这个要考虑运算符号的优先级图片说明
图片说明

结果明显是不一样的,你用了假IDE

赋值运算符在运算优先级里是最低的,所以加不加括号都是一样的。