关于左值,右值,前自增操作符,后自增操作符

原创 2012年03月26日 22:32:20

最近看了下c++ primer,不知道理解对不对~~

左值是可以出现在赋值语句的左边或右边,可以认为它不光有值,还有一个存储地址

右值是只能出现在赋值语句的右边,可以认为它只有一个值的大小,没有存储地址,只关心它的值

对应前自增和后自增操作符来讲

前自增操作符具有的左值性质,++i,它不仅返回i自增后的值,还返回i的存储单元地址

而后自增操作符具有的是右值性质,i++,它返回的只是i的原值,没有这个i的存储单元的地址

如下语句:

int i = 0;

++(i++);//这个语句编译会报错~因为i++返回的是个常量值,前自增不知道在哪个存储单元进行自增操作(i++)++也一样编译通不过,道理一样。

而(++i)++;//这个语句就能通过编译,因为++i还返回的i的存储地址,所以后自增知道是在哪个存储单元进行操作

int i = 0

cout << (++i)++ << endl;//输出结果为1

cout<< i << endl;//输出结果为2

自增自减操作符在C与C++中的左值区别

今天网上看到一个华为的面试题目: 写出判断ABCD四个表达式的是否正确, 若正确, 写出经过表达式中 a的值 int a = 4; (A)a += (a++); (B) a += (++a) ;(...
  • julysee
  • julysee
  • 2015年02月12日 14:36
  • 265

第五章 表达式(part2) 自增和自减、箭头、条件、sizeof 、逗号 操作符

5.5. 自增和自减操作符 自增(++)和自减(--)操作符为对象加1或减1操作提供了方便简短的实现方式。它们有前置和后置两种使用形式。 到目前为止,我们已经使用过前自增操作,该操作使其操作数...
  • gws1229
  • gws1229
  • 2012年09月24日 15:15
  • 847

3.自增自减操作符前缀形式与后缀形式的区别

C++允许重载自增,自减操作符。重载函数间的区别取决于它们的参数类型上的差异。C++规定后缀形式有一个int类型的参数,当函数被调用时,编译器传递一个0做为int参数的值给该函数。 class UP...

ES规范解读之自增操作符

ES规范解读之自增操作符原文:https://github.com/kuitos/kuitos.github.io/issues/26 几个月前,不知道什么缘由跟松波同学讨论了起js里自增操作符(i...
  • shut1k
  • shut1k
  • 2015年11月15日 13:56
  • 204

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

Item M6:自增(increment)、自减(decrement)操作符前缀形式与后缀形式的区别   很久以前(八十年代),没有办法区分++和--操作符的前缀与后缀调用。这个问题遭到程序员的报怨...

【C++再学习】【07】自增自减操作符背后的秘密

首先来看一个问题: Y=i++; Y=++i; 上边两行语句我们要讨论的问题就是Y是否一样,可能大家都知道结果,但是我还是要说说这其中的道理,因为i++和++i都是表达式,表达式都是有值...

Java中的自增操作符与中间缓存变量机制

先来看一道很经典 的例题吧: 求下列代码的输出: public class MyTest{ public static void main(String[] args){ int...

C++读书笔记之 单目运算符重载 自增++自减——操作符重载

程序运行结果如下: ***************************************** now the time is : Hour: 22 Minute:57 test pr...

自增(++)和自减(--)操作符

自增操作符和自减操作符经常要在我们自定义的类类型中使用到,而使用时经常会出现问题。现把自己在学习的过程中的代码拿出来看一下,也是c++ primer中的例子如下: #ifndef  _CHECK_P...
  • xxinliu
  • xxinliu
  • 2012年06月25日 16:32
  • 1971
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:关于左值,右值,前自增操作符,后自增操作符
举报原因:
原因补充:

(最多只允许输入30个字)