第1个回答 2019-09-15
编译器里关于运算符的判定有个“贪心法”,也叫“大嘴法”,就是如果遇到一个">",编译器会再往后读一个字符,如果下个字符是"=",编译器就会判定遇到了一个“>=”,同样,如果遇到一个“+”,也要往后读一个字符,如果下个字符是“+”,则解释成“++”,所以对这个例子,编译器会识别成(a++)++
但a++不能作为左值,不能为其赋值,所以(a++)++这样写是不正确的,编译器不会把a++后面的符号解释成++,所以这样写唯一有意义的解释就是(a++)
+
(b++),其实这样写是错误的,实际编程过程中绝对不要这样写,而且Dennis
Ritchie当时创造C语言时也不会想到一个++,--会被我们折磨成这样吧,所以这样的问题理解一下就可以了,不要老是钻这样问题,编程时你要这样写会被骂死的……