首页 > 其他分享 >左值、右值、运算符

左值、右值、运算符

时间:2022-12-12 10:58:29浏览次数:30  
标签:运算 结果 对象 右值 左值 运算符

1、取地址符作用于一个左值运算对象,返回一个指向该左值运算对象的指针,这个指针是一个右值。

2、如果表达式的求值结果是左值,decltype作用于该表达式(不是变量)得到一个引用类型,例如,假设p的类型是int *,由于解引用运算符返回左值,那么decltype(*p)得到的类型是int &。另一方面,因为取地址运算符生成右值,所以decltype(&p)的结果是int **,即结果是一个指向整型指针的指针。

3、运算对象的求值顺序与优先级和结合律无关,如表达式f() + g() * h() + j();中并没有规定fghj四个函数哪个先求值,当四个函数没有关联时不会出错,但是当它们相互有影响时,由于哪个先求值并没有规定,因此会得到不确定的结果,此时这条语句是错误的。

4、算术运算符、逻辑运算符、关系运算符的运算对象和求值结果都是右值。

5、求余运算符结果的符号与第一个运算对象符号一致,出发运算符结果的符号根据两个运算对象的符号而定,如果两个运算对象符号相同则结果为正,否则为负。

6、if(val)当val非0时为真,if(val == true)只有当val为1时为真。进行比较运算时,除非比较的对象是bool类型,否则不要使用布尔字面值true和false作为运算对象。

7、递增递减运算符有前置版本和后置版本,前置版本将对象本身作为左值返回,后置版本则将对象原始值的副本作为右值返回。建议:除非必须,否则不用后置版本。

8、后置递增运算符的优先级高于解引用运算符,因此,*iter++的意思是先进行iter++,使iter得值加1,返回iter增加之前的原始值,再进行解引用。

9、成员访问运算符(箭头运算符和点运算符):箭头运算符作用于一个指针类型的运算对象,结果是一个左值,点运算符分两种情况:如果成员所属的对象是左值,那么结果是左值,反之,如果成员所属的对象是右值,那么结果是右值。

10、当条件运算符:两侧的表达式是左值或者能转换成同一左值时,结果是左值,反之,结果是右值。

标签:运算,结果,对象,右值,左值,运算符
From: https://www.cnblogs.com/Gregg/p/16962806.html

相关文章

  • 【Shell脚本(二) -- 运算符】
    一、Shell基本运算符Shell和其他编程语言一样,支持多种运算符,包括:算数运算符关系运算符布尔运算符字符串运算符文件测试运算符原生bash不支持简单的数学运算,但是可以通过其......
  • Go语言基础之运算符
    运算符运算符用于在程序运行时执行数学或逻辑运算。Go语言内置的运算符有:算术运算符关系运算符逻辑运算符位运算符赋值运算符算术运算符运算符描述......
  • java运算符
    运算符基本了解运算符:对字面量或者对变量进行操作的符号表达式:用运算符把字面量或者变量连接起来(符合java语法的句子)就可以称为表达式,不同运算符连接的表达式体现......
  • 前端开发系列002-基础篇之JavaScript的运算符
    title:'前端开发系列002-基础篇之JavaScript的运算符'tags:-javaScript系列categories:[]date:2017-03-2812:05:13本文将介绍javaScript语言中的运算符(`oper......
  • 前端开发系列002-基础篇之JavaScript的运算符
    title:'前端开发系列002-基础篇之JavaScript的运算符'tags:-javaScript系列categories:[]date:2017-03-2812:05:13本文将介绍javaScript语言中的运算符(`oper......
  • java运算符相关学习
    java运算符面试题1:计算2*8如何操作效率更高?剖析:2*8=>实际上是2*2*2*22<<3System.out.println(2<<3);面试题2:""+a+b和a+b+""的输出结果Integera......
  • 3. 运算符
    运算符的定义和分类运算符的定义运算符:也叫操作符,是一种符号。通过运算符可以对一个或多个值进行运算,并获取运算结果。表达式:数字、运算符、变量的组合(组成的式子)。表......
  • python语法中的左值、右值和字符
    位置决定语义在下面的python代码中,忽略掉语法错误,源码中同样一个单词tsecer在不同的位置有不同的意义import之后在import之后的tsecer是作为一个简单的字面字符串来处......
  • C语言运算符优先级列表
    初级运算符()、[]、->、.  高于  单目运算符高于算数运算符(先乘除后加减)高于关系运算符高于逻辑运算符(不包括!)高于条件运算符高于赋值运算符高于逗号......
  • JavaScript:操作符: 逗号运算符
    逗号运算符,是极少见的运算符,我们看一下代码理解一下逗号运算符的功能:先说结论,逗号运算符的优先级非常低,比赋值运算符=还要低;同时,逗号隔开的几个表达式,都会各自进行计算,......