1.3 运算符和表达式

1.3 运算符和表达式

C++中记述运算的符号称为运算符,运算符的运算对象称为操作数
一个操作数运算的运算符称为单目运算符或称为一元运算符
两个操作数运算的运算符称为双目运算符或称为二元运算符
三个操作数运算的运算符称为三目运算符或称为三元运算符

算术运算符

函数原型 功能说明
+ 正号运算符
- 负号运算符
* 乘法运算符
/ 除号运算符
% 求余运算符
+ 加法运算符
- 减法运算符
int abs(int n); 返回整数n的绝对值
long labs(long n); 返回长整数n的绝对值
double fabs(double x); 返回双精度x的绝对值
double cos(double x); 返回x弧度的余弦
double sin(double x); 返回x的正弦
double tan(double x); 返回x的正切
double acos(double x); 返回x的反余弦弧度
double asin(double x); 返回x的反正弦弧度
double atan(double x); 返回x的反正切弧度
double log(double x); 返回以e为底的对数
double log10(double x); 返回以10为底的对数
double exp(double x); 求e^x
double pow(double x,double y); 求x^y
double sqrt(double x); 求x的平方根
double fmod(double x,double y); 求整除x/y的余数
double ceil(double x); 求不小于x的最小整数
double floor(double x); 求不大于x的最大整数

* 除法运算:两个整数相除,结果是整数,将小数部分去掉;若被除数或除数中有一个或一个以上,则进行实数除法,结果是实型。
* 求余运算:要求参与运算的两个操作数都是整型,结果是两个数相除的余数
* 结合性:在算术运算符中,除了单目运算符外,其余运算符的结合性都是从左到右
* 溢出处理:在整数超过类型范围溢出的时候,系统不认为是一个错误。其余的编译系统会报告错误病终止程序运行

赋值运算符

  • 结合性从右到左
复合赋值
  • 在C++中,规定了10种复合赋值运算符
运算符 功能 运算符 功能
+= 加赋值 &= 位与赋值
-= 减赋值 |= 或与赋值
*= 乘赋值 ^= 位异或
/= 除赋值 <<= 左移位
%= 求余赋值 >>= 右移位

* 复合运算符可以简化代码,也可以在编译时产生更高效的执行代码
* 复合运算符之间不能有空格,否则编译时会出现错误信息

多重赋值
  • 多重赋值是指在一个赋值表达式中出现两个或更多的赋值符“=”

数据类型转换

自动转换
  • 自动转换是将数据类型按从高到低的顺序自动进行转换
    这里写图片描述
强制转换
  • 强制转换是在程序中通过指定数据类型改变上图的类型转换顺序,将一个变量从其定义的类型改变成为另一种不同的类型。可能会丢失有效的数据位
  • 两种转换格式
    (<类型名>)<表达式>
    <类型名>(<表达式>)
    如:
double f = 3.56;
int nNum;
nNum = (int)f;
// 或者 nNum = int(f);

关系运算符

  • 关系运算:实际上是比较两个操作数是否符合给定的条件。在C++中,若符合条件,则关系表达式的值为bool型的true或非0(“真”),否则为bool型的false或0(“假”)
  • C++提供了六种关系与关系运算符
运算符 含义
< 小于
<= 小于等于
> 大于
>= 大于等于
== 等于
!= 不等于

* 其中前四种的优先级相同且高于后面两种

逻辑运算符

  • 当需要满足多个条件的时候,则需要使用逻辑运算符
  • C++提供了三种逻辑运算符
运算符 含义
逻辑非
&& 逻辑与
|| 逻辑或

位运算符

  • C++语言提供了两种位运算符
运算符 含义
按位求反
& 按位与
^ 按位异或
| 按位或
<< 左移
>> 右移

* 左移,低位补0,移出的高位舍弃
操作数 << 移位的位数
* 右移:移出的低位舍弃。如果是无符号,高位补0;有符号,高位补符号数

条件运算符

  • 条件运算符?:是C++中唯一的一个三目运算符
    <e1>?<e2> : <e3>
    • 如果e1为真,执行e2,否则执行e3
  • 条件运算符的优先级仅高于赋值运算符

sizeof运算符

  • sizeof的目的是返回操作数所占的内存空间大小(字节数)
    • sizeof(<表达式>)
    • sizeof(<数据类型>)

逗号运算符

  • 逗号运算符是优先级最低的运算符,它用于把多个表达式连接起来
    `表达式1,表达式2,表达式3,…,表达式n`
  • 计算时,C++将从左往右逐个计算表达式,最终整个表达式的结果是最后计算的那个表达式的类型和值

自增自减

  • 单目运算符的自增和自减为变量加1和减1提供了一种非常有效的方法
  • ++和–可放在变量的左边和右边,称为前缀运算符和后缀运算符
    • 前缀运算符:在将该变量增1(减1)后,用新的值在表达式中进行其他运算
    • 后缀运算符:则用该变量的原值在表达式中进行其他运算后,再将该变量增1(减1)
发布了40 篇原创文章 · 获赞 55 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/A807296772/article/details/77601181