1.3 运算符和表达式

来源:互联网 发布:西宁网络电视台 编辑:程序博客网 时间:2024/06/06 19:22

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)
原创粉丝点击