下面的内容为本人无聊时自我猜想,不保正内容的正确性,如有问题,请见谅。
0、空格可以告诉编译器名显逻辑
1、注意向后不能连续有三个以上(---)(+++),可以用空格告诉编译器明显的逻辑。
如:不能有a++++b
可以有a+++ +b
2、注意向前不能有连续两个以上(--)(++),,可以用空格告诉编译器明显的逻辑。
如:不能有a++ +++b
可以有a+++ ++b或a++ + ++b
3、从左向右一次解释,所以
不能有交叉体
如a++++b
会分析为(a++)(++b),很显然这两者之间没有运算符,所以会出错。
而a++ + +b,会分析为(a++) + (+b)
如a+++ ++b++不正确
会解释为
(a++)+ [(++b)]++
4、当然与其它符号混合可以超过定数以上
5、取出结合体
a+++b+++ +c
a(++)+b(++)+ +c
5、取出最高优先级的" 算数表达式",在"算数表达式"中,执行算数表达式前增或后增
a=4
b=2
c=3
(a > ++b)|| (a > ++b)
结果为b=3
6、精度是按步提升
如
a=800
b=900
c=789
d=908.0
a*b*c+d
会出错
前三者在运算的时候,精度为int,而做”+“时,对会为double
每算一步进行一次精度检查与提升