原表达式a*4+b12-c*b3a3*4+4/2-5*44①把变量用值替换b3*4+412-6*45②根据优先级进行求值.替换C重复②-612+2-20表达式最终产生了个值图2-9无副作用表达式求值
图2-9 无副作用表达式求值
2.有副作用的表达式求值求值顺序和原则:(1)依据下列规则改写表达式①把前置自增/减表达式复制放到原式之前,用变量替换原式中已复制部分②把后置自增/减表达式复制放到原式之后,用变量替换原表达式中已复制部分(2)处理前置自增/自减部分(3)用值替换变量(4)按优先级顺序计算各部分并用求得的值替换,1重复此过程直到得到一个单独的值(5)处理自增/自减部分
(1)依据下列规则改写表达式 ①把前置自增/减表达式复制放到原式之前,用变量替换原 式中已复制部分 ②把后置自增/减表达式复制放到原式之后,用变量替换原 表达式中已复制部分 (2)处理前置自增/自减部分 (3)用值替换变量 (4)按优先级顺序计算各部分并用求得的值替换,重复此过程 直到得到一个单独的值 (5)处理自增/自减部分 2.有副作用的表达式求值 求值顺序和原则:
3原表达式--a*(3+b)/2-c++*ba42*712-5*4abc++a*(3+b)12-c*b5c++14/2-5*4c①把前置部分--a拿到前面c++扣后置部分c++到后面求前置表达式一a的值,之7-5W42后把它去掉c++a2*(3+4)/2-5*47-204c++c++b②用①运算后各变量的值替-136换式子中的变量根据优先c++级反复求值替换直到得到一C个单独的值c++③处理后置表达式图2-10有副作用的表达式求值
图2-10 有副作用的表达式求值
冬思考教材第079页第7题A~E中哪些有副作用?哪些没有副作用?C和E中表达式的值怎么确定?
思 考 教材第079页第7题A~E中哪些有副作用?哪些没 有副作用? C和E中表达式的值怎么确定?