码迷,mamicode.com
首页 > 其他好文 > 详细

4.1基础

时间:2018-05-20 18:09:03      阅读:140      评论:0      收藏:0      [点我收藏+]

标签:一个   对象   int   ++i   内容   pre   bsp   产生   1.2   

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基础

标签:一个   对象   int   ++i   内容   pre   bsp   产生   1.2   

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

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!