首页 > 其他分享 > 第四章 表达式 <font color = red></font>

第四章 表达式 <font color = red></font>

时间:2023-09-08 18:44:30浏览次数:25  
标签:运算 右值 对象 左值 运算符 表达式 类型 第四章

4.1 基础

  • 运算对象转换

类型转换大多数都合乎情理,但是小整数类型(如bool,char,short等)通常会被提升成较大的整数类型,主要是int。

  • 重载运算符

当运算符作用于类类型的运算对象时,用户可以自行定义其含义。因为这种自定义的过程事实上是为了已存在的运算符赋予了另外一层含义,所以称之为重载运算符。
我们使用重载运算符时,其包括运算对象的类型和返回值的类型,都是由该运算符定义的,但是运算对象的个数,运算符的优先级和结合律都是无法改变的。

  • 左值和右值

当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)
在需要右值的地方可以用左值来代替,但是不能把右值当作左值(也就是位置)使用。当一个左值被当作右值使用时,实际使用的是它的内容(值)。

  1. 赋值运算符需要一个(非常量)左值作为其左侧运算对象,得到的结果仍然是一个左值。
  2. 取地址符作用于一个左值运算对象,返回一个指向该运算对象的指针,这个指针是一个右值。
  3. 内置解引用运算符、下标运算符、迭代器解引用运算符、string和vector的下标运算符的求值结果都是左值。
  4. 内置类型和迭代器的递增运算符作用于左值运算对象,所得结果也是左值。
    使用关键字decltype的时候,左值和右值也有所不同。如果表达式的求值结果是左值,decltype作用于该表达式得到一个引用类型

假设p的类型是int ,因为解引用运算符生成左值,所以decltype(p)的结果是int&,因为取地址符生成右值,所以decltype(*p)的结果是int **,结果是一个指向整型指针的指针

4.2算数运算符

  • 算数运算符

参与取余运算的对象必须是整数类型。
(-m) % n == - (m % n);
m % (-n) == m % n;

  • 赋值运算符

标签:运算,右值,对象,左值,运算符,表达式,类型,第四章
From: https://www.cnblogs.com/Ranr-/p/17687704.html

相关文章

  • java正则表达式(一)
    转: https://www.cnblogs.com/-w-k-/p/16040896.html一、校验数字的表达式1数字:^[0-9]*$2n位的数字:^\d{n}$3至少n位的数字:^\d{n,}$4m-n位的数字:^\d{m,n}$5零和非零开头的数字:^(0|[1-9][0-9]*)$6非零开头的最多带两位小数的数字:^([1-9][0-9]*)+(.[0-9]{1,2})?$7带......
  • 第四章总练习题
    第1题需要构造新的连续函数,利用连续函数的性质证明。第3题考察有理数在实数中的稠密性。第4、6题考察连续函数的介值性。第7题考察单调有界原理。第11题考察一致连续,需要将大的区间分成两个小的区间,利用不同的性质分别证明一致连续,从而在大的区间上一致连续。......
  • C# 日期、时间验证的正则表达式
    yyyy/MM/dd格式^(?<year>\\d{2,4})/(?<month>\\d{1,2})/(?<day>\\d{1,2})$yyyy-MM-dd格式^(?<year>\\d{2,4})-(?<month>\\d{1,2})-(?<day>\\d{1,2})$yyyy.MM.dd格式^(?<year>\\d{2,4})[.](?<month>\\d{1,2})[.]......
  • 使用re模块的正则表达式 将r'\n ', '[', ']'等剔除
    使用re模块的正则表达式将字符串"['移动类型',\n'物料号',\n'物料描述',\n'批次号',\n'卷号(箱号)',\n'数量',\n'基本计量单位',\n'发料库存地',\n'工厂',\n'记帐日期',\n'凭证日期',\n&......
  • 正则表达式匹配引号
    正则表达式匹配引号1.单引号Stringregex="'";2.双引号反斜杠(\)用于转义双引号字符,以确保它被正则表达式引擎正确解析。Strings=newStringBuilder(in.nextLine()).reverse().toString().replaceAll("\"","");......
  • 正则表达式和sed
    casevarin  模式1|模式1-1)    command。。。    ;;  *)   command...    ;;esacfunction_name(){command...}functionfun_name(){command...}正则表达式:前导字符(位于元字符前的字符);元字符就是在正则里具有特殊含义的特殊字符.:匹配......
  • 正则表达式编译取值法
       还是使用《正则表达式直接取值法》中的例子,这里介绍一下用编译取值法编辑正则表达式取得我们想要的元素。text="姓名:海风,性别:男,年龄:52,账号:12345,密码:6789,作品:<<'双随机'管理系统>>电\\\话:133****5117(常用)"   采用编译取值法匹配全部字符,包......
  • 正则表达式
    正则表达式(RegularExpression)是一种文本模式,包括普通字符(例如,a到z之间的字母)和特殊字符(称为"元字符"),可以用来描述和匹配字符串的特定模式。正则表达式是一种用于模式匹配和搜索文本的工具。正则表达式提供了一种灵活且强大的方式来查找、替换、验证和提取文本数据。正则表达......
  • 10 lambda 表达式
    packageThreadDemo;//lambda表达式/*//代码简化外部类-->静态内部类-->局部内部类-->匿名内部类-->lambda表达式一步步简化代码*/publicclassTest10_lambda{publicstaticvoidmain(String[]args){//1.匿名内部类,必须有接口或者父类ne......
  • ipv4+ipv6+端口号正则表达式,最极限的各种搭配组合
    Ipv4^((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$Ipv6^([\da-fA-F]{1,4}:){6}((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25[0-5]|2[0-4]\d|[01]?\d\d?)$|^::([\da-fA-F]{1,4}:){0,4}((25[0-5]|2[0-4]\d|[01]?\d\d?)\.){3}(25......