C++笔记第二章

算术运算与赋值运算
算术运算是最基本的运算 基本算术运算符:+ - * /(若整数相除,结果取整) %(取余,操作数为整数)
优先级:先乘除,后加减,同级运算从左到右
自增运算符++(前置的先增后参与;后置的先参与后增)
自减运算符–(前置的先减后参与;后置的先参与后减)
赋值运算符“=”
16.2.4.2
逗号运算、关系运算、逻辑运算、条件运算
逗号也算运算符,它连接左右两个表达式,先计算左边表达式,再计算右边的表达式,两个表达式都计算完了之后,以右边的表达式为最终结果。
关系运算符是用来比较两个表达式它们的大小相等和不相等的关系
逻辑运算符是进行逻辑与逻辑或逻辑非运算的
条件表达式可以做到简单的选择结构。
逗号运算和逗号表达式
格式:
表达式1,表达式2
求解顺序及结果
先求解表达式1,再求解表达式2
最终结果为表达式2的值
例如:a=35,a4 最终结果为60
关系运算与关系表达式
关系运算是比较简单的一种逻辑运算,优先次序为:
< <= > >= == !=
优先级相同(高) 优先级相同(低)
其结果类型为bool,值只能为true或false
例如:a>b,c<=a=b,x+y==3
它的值是布尔类型
逻辑运算与逻辑表达式
逻辑运算符
!(非) &&(与) ||(或)
优先次序: 高 到 低
逻辑运算结果类型:bool,只能为ture或false
逻辑表达式
例如:(a>b)&&(x>y)
布尔类型

“&&”的运算规则
两侧表达式都为真,结果为真
有一侧表达式为假,结果为假
“&&”的“短路特征”表达式1&&表达式2
先求解表达式1
若表达式一的值为false,则最终结果为false
不再求解表达式2
若表达式1的结果为true,则求解表达式2
以表达式2的结果作为最终结果

“||”的运算规则
两侧表达式都为真,结果为真
有一侧表达式为假,结果为假
“||”的“短路特征”表达式1&&表达式2
先求解表达式1
若表达式一的值为false,则最终结果为false
不再求解表达式2
若表达式1的结果为true,则求解表达式2
以表达式2的结果作为最终结果

条件运算符与条件表达式
一般形式

表达式1?表达式2;表达式3!
表达式1必须是bool类型
执行顺序
先求解表达1的值为true,则求解表达式2
表达式2的值为最终结果
若表达式1的值为false,则求解表达式3,
表达式3的值为最终结果

条件运算(表达式1?表达式2:表达式3)的优先级
条件运算符优先级高于赋值运算符,低于逻辑运算符
C++笔记第二章

17.2.4.3sizeof运算、位运算
sizeof是求一个变量或者一种数据类型他所占的字节数的。
高级语言处理数据基本是以字节为单位的
机器语言,汇编语言处理数据以位为单位
Sizeof运算符,这是一个计算一下某种类型或者某个变量,某个对象他占多少个字节的运算。
Sizeof运算符
语法形式
Sizeof(类型名)或sizeof表达式
结果值:
“类型名”所指定的类型,或“表达式”的结果类型所占的字节数
例如:
Sizeof(short)
Sizeof x
位运算
C++笔记第二章
C++笔记第二章
C++笔记第二章
C++笔记第二章
C++笔记第二章

C++笔记第二章
C++笔记第二章

18.2.4.4运算优先级、类型转换

混合运算时数据类型的转换——隐含转换
运算符优先级
C++笔记第二章
隐含转换
一些二元运算符(算术运算符、关系运算符、逻辑运算符、位运算符和赋值运算符)要求两个操作数的类型一致
在算术运算和关系运算中如果参与运算的操作数类型不一致,编译系统会自动对数据进行转换(即隐含转换),基本原则是将低类型数据转换为高类型数据
C++笔记第二章

混合运算时数据类型的转换
将一个非布尔类型的算术赋值给布尔类型时,算术值为0则结果为false,否则结果为true
将一个布尔值赋给非布尔类型时,布尔值为false则结果为0,布尔值为true则结果为1
将一个浮点数赋给整数类型时,结果值将只保留浮点数中的整数部分,小数部分将丢失。
将一个整数值赋给浮点类型时,小数部分记为0,如果整数所占空间超过了浮点类型的容量,精度可能有损失

混合运算时数据类型的转换——显示转换
显示类型转换的作用是将表达式的结果类型转换为类型说明符所指定的类型
语法形式——C++的形式
类型说明符(表达式)
(类型说明符)表达式
类型转换操作符<类型说明符>(表达式)
Const_cast、dynamic_cast、reinterpret_cast、static_cast

19.2.5简单程序设计上
基本功:改正语法错误和运行时的错误的能力
在编写代码和模仿复制代码时中英文符号错乱问题是常见问题一
运行时错误最主要的两类原因:类型错和逻辑错
辅助调试程序的功能
(debug)

辅助调试工具
利用辅助调试工具,可以实现单步运行,设置断点,观察变量和表达式的值等功能