栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

【Primer C++学习笔记】4. 表达式

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Primer C++学习笔记】4. 表达式

4. 表达式

目录

4. 表达式

4.1 基础

4.1.1 基本概念

4.1.2 优先级与结合律

4.1.3 求值顺序

4.2 算术运算符

4.3 逻辑和关系运算符

4.4 赋值运算符

4.5 递增和递减运算符

4.6 成员访问运算符

4.7 条件运算符

4.8 位运算符

4.9 sizeof运算符

4.10 逗号运算符

4.11 类型转换

4.11.1 算术转换

4.11.2 隐式转换

4.11.3 显示转换

4.12 运算符优先级表


4.1 基础

4.1.1 基本概念
  • 一元运算符:作用于一个运算对象(&,*解引用)
  • 二元运算符:作用于两个运算对象(==,*乘法)
  • 三元运算符
  • 函数调用
  1. 组合运算符和运算对象:运算符的优先级、结合律以及运算对象的求值顺序;
  2. 运算对象转换:表达式求值的过程中会涉及到类型转换,小整数类型通常会被提升成较大的整数类型;
  3. 重载运算符:运算符作用与于类类型的对象时用户可以自行定义含义,即为已存在的运算符赋予另外一层含义,但是运算对象的个数、运算符的优先级和结合律都是无法改变的;
  4. 左值和右值:当对象被用作左值的时候用的是对象在内存中的位置,被用作右值的时候用的是对象的值;

4.1.2 优先级与结合律

4.1.3 求值顺序
  • && 先求左侧运算对象的值,当左侧运算对象的值为真时才求右侧运算对象的值(短路求值)
  • ||  先求左侧运算对象的值,当左侧运算对象的值为假时才求右侧运算对象的值(短路求值)
  • ?: 
  • , 

4.2 算术运算符

左结合律:当优先级相同时按照从左向右的顺序进行组合


4.3 逻辑和关系运算符


4.4 赋值运算符
  • 左侧运算对象必须是一个可修改的左值
  • 满足右结合律
  • 赋值运算符优先级较低

4.5 递增和递减运算符

++/--

  • 前置:首先将运算对象+1/-1,然后将改变后的对象作为求值结果
  • 后置:求值结果是运算对象改变之前那个值的副本


4.6 成员访问运算符

点运算符:(*ptr).mem

箭头运算符:ptr->mem

 


4.7 条件运算符

cond ? expr1 : expr2;

cond条件为真时返回expr1,为假则返回expr2

条件运算符优先级非常低,在长表达式中需要在表达式两端加上括号。


4.8 位运算符

 作用于整数类型的运算对象,把运算对象看成是二进制位的集合

 


4.9 sizeof运算符

返回一个表达式或一个类型名字所占的字节数。


4.10 逗号运算符

逗号运算符的结果是右侧表达式的值

每次循环迭代ix和cnt相应改变 


4.11 类型转换

4.11.1 算术转换

把一种算术类型转换成另外一种算术类型,比如整型提升:小整数类型(bool,char,signed char,unsigned char,short,unsigned short)转换成较大的整数类型(int);

4.11.2 隐式转换
  • 表达式中,比int类型小的整型值被提升为较大的整数类型;
  • 在条件中,非布尔值转换成布尔值;
  • 初始化中,初始值转换成变量的类型;
  • 赋值中,右侧运算对象转换成左侧运算对象的类型;
  • 算术运算或关系运算的运算对象有多种类型也会转换成同一种类型;
  • 函数调用时也会发生类型转换;

4.11.3 显示转换

命名的强制类型转换(需要避免强制类型转换):

  • type:转换的目标类型
  • expression:要转换的值
  • cast-name:static_cast,dynamic_cast,const_cast,reinterpret_cast

static_cast:任何具有明确定义的类型转换

 

dynamic_cast:支持运行时类型识别

const_cast:只能改变运算对象的底层const

reinterpret_cast:为运算对象的位模式提供较低层次上的重新解释(没懂,别用)


4.12 运算符优先级表

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/869528.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号