C语言搬运工--运算符&&结合性

参考资料:

说说C语言运算符的“优先级”与“结合性”

总结一下,本文主要阐述了以下几点:
(1)优先级决定表达式中各种不同的运算符起作用的优先次序,而结合性则在相邻的两个运算符的具有同等优先级时,决定表达式的结合方向;
(2)后自增(后自减)从语义效果上可以理解为在做完自增(自减)之后,返回自增(自减)之前的值作为整个表达式的结果值;
(3)准确来讲,优先级和结合性确定了表达式的语义结构,不能跟求值次序混为一谈。

逆波兰表示法
在逆波兰记法中,所有操作符置于操作数的后面,因此也被称为后缀表示法。逆波兰记法不需要括号来标识操作符的优先级。

逆波兰结构由弗里德里希·鲍尔(Friedrich L. Bauer)和艾兹格·迪科斯彻在1960年代早期提议用于表达式求值,以利用堆栈结构和减少计算机内存访问。

自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别

来自侯捷翻译的《more effective c++》,不太懂.


个人总结:

1.优先级决定了表达式中不同优先级的运算符的执行顺序,而优先级相同的运算符由结合方向决定执行顺序;

2.为了考虑效率,将执行顺序已经确定的表达式由中缀表示法转化为后缀表示法,逐个压栈操作数,遇到操作符取出对应个数的操作数,将结果再次压栈;

3.遇到复杂的表达式(比如i+++++i)运用贪心原则进行解析表达式。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章