首页 > 其他 > 详细

4.1基础

时间:2018-05-20 17:55:51      阅读:193      评论:0      收藏:0      [点我收藏+]

4.1.1基本概念

1.左值,右值:

int a = 5;//a为左值
char c = "hello";//hello为右值

当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)。

 

4.1.2 优先级与结合律

~

 

4.1.3 求值顺序

小心未定义行为,例如:

int i = 0;
cout << i << " " <<  ++i << endl;//未定义行为

计算机可能先执行 i 再执行 ++i ,也可能先执行 ++i 再执行 i;

 

运算对象的求值顺序与优先级和结合律无关,如:f() + g() * h() + j()

 

  • 优先级规定:先算g() * h()

 

  • 结合律规定:将f()的结果加上g()*f()的结果,再与j()相加

 

  • 对于这些函数的调用顺序没有明确的规定。

如果这几个函数之间是无关的,那么调用顺序不受限制,如果之间的几个函数受到同一对象影响,则会产生未定义行为

 

学会使用()

 

4.1基础

原文:https://www.cnblogs.com/Mayfly-nymph/p/9063612.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!