首先由于++不可对表达式使用,那么只能是a++再取反,这时候由于++后缀的特性,输出的值最终是-3 第二个输出的a则是4
PS:此特性对C++同理
然后又是垃圾运算符优先级时间,此处直接把隔壁C++的贴过来吧
后置++ --要比前置++ --优先级要高一点,不过应该不会考这种shit东西吧 (好在++i++是违法的)
:: 和()[] . -> 后置++ 后置-- 类型转换前置++ ,前置--,大量一元逻辑运算符号(~).* ->*乘除取余加减左移右移大于 小于 大于等于 小于等于等于和不等于& ^ |(三者优先级不等嗷 从高到底)&& ||(同上不等三元运算符号?: 它后面是一大堆赋值等号懒得写了
值得一提的是 int a=b=c=50: 的确不合法,但是int a,b,c; a=b=c=50