C语言里++是右往左算,a++*a为什么不算++呢?、好奇怪.a=3时,结果是9、右结合性去了哪里?a++*a , 当 a=3时,结果是9、那右结合性去了哪里?为什么算结果的是吧不加1?

来源:学生作业帮助网 编辑:作业帮 时间:2024/05/10 11:25:08

C语言里++是右往左算,a++*a为什么不算++呢?、好奇怪.a=3时,结果是9、右结合性去了哪里?a++*a , 当 a=3时,结果是9、那右结合性去了哪里?为什么算结果的是吧不加1?
C语言里++是右往左算,a++*a为什么不算++呢?、好奇怪.a=3时,结果是9、右结合性去了哪里?
a++*a , 当 a=3时,结果是9、
那右结合性去了哪里?为什么算结果的是吧不加1?

C语言里++是右往左算,a++*a为什么不算++呢?、好奇怪.a=3时,结果是9、右结合性去了哪里?a++*a , 当 a=3时,结果是9、那右结合性去了哪里?为什么算结果的是吧不加1?
在表达式中,前缀++、--或后缀++,--都属于“附加效应”(或副作用),这些附加效应何时实现,在ANSI C中并没有明确规定,只是规定,该表达式计算完成(时间点)后,附加效应也完成了,所以有附加效应的表达式的移植性是没有的.为了增强可移植性,建议在必要的地方加括号,比如
(a++)* a,或 (++a)*a