C++运算符与表达式

1、算术运算符与算术表达式

C++中的算术运算符包括基本算术运算符和自增自减运算符。由算术运算符、操作数和括号构成的表达式称为算术表达式。

基本算术运算符有:+(加或正号)、-(减或负号)、*(乘)、/(除)、%(求余)。C++中的++(自增)、--(自减)运算符都是一元运算符。

如果i的值是1,则下列两条语句的执行效果是不一样的:

cout<<i++;      //首先使i自增为2,然后输出i自增前的值1

cout<<++i;      //首先使i自增为2,然后输出i的当前值2

2、赋值运算符与赋值表达式

C++提供了几个赋值运算符,最简单的赋值运算符就是”=“。带有赋值运算符的表达式被称为赋值表达式。

除了”=“以外,C++还提供了10种复合的赋值运算符:+=,-=,*=,/=,%=,<<=,>>=,&=,^=,|=。

a+=3              等价于   a=a+3

x*=y+8           等价于   x=x*(y+8)

a+=a-=a*a     等价于   a=a+(a=a-a*a)

3、逗号运算和逗号表达式

在C++中,逗号也是一个运算符,它的使用形式为:

表达式1,表达式2

求解顺序为先求解1,再求解2,最终结果为表达式2的值。

a=3*5,a*4            最终结果为60

4、逻辑运算与逻辑表达式

用关系运算符将两个表达式连接起来,就是关系表达式。关系表达式是一种最简单的逻辑表达式,其结果类型为bool,值只能为true或false。

5、条件运算符与条件表达式

C++中唯一的一个三元运算符是条件运算符”?“,它能够实现简单的选择功能。条件表达式的形式是:

表达式1?表达式2:表达式3

其中,表达式1必须是bool类型,表达式2,3可以是任何类型,且类型可以不同。条件表达式的最终类型是2和3中较高的类型。如果表达式1的类型是bool型,编译器将进行隐含类型转换,转换不成功时将报错。

条件表达式的执行顺序为:先求解表达式1,若表达式1的值为true,则求解表达式2,表达式2的值为最终结果;若表达式1的值为false,则求解表达式3,表达式3的值为最终结果。

6、sizeof运算符

sizeof运算符用来计算某种类型的对象在内存中所占的字节数。该操作符使用的语法形式为:

sizeof(类型名)

sizeof    表达式

7、位运算

(1)按位与(&)

(2)按位或(|)

(3)按位异或(^)

(4)按位取反(~)

(5)移位

8、运算符的优先级与结合性

9、混合运算时数据类型的转换

表达式中的类型转换分为两种:隐含转换和显示转换。

(1)隐含转换

转换的基本原则是将低类型的数据转换成高类型数据。类型越高,数据的表示范围越大,精度也就越高,各种类型的高低顺序如下:

char      short      int      unsigned      long      unsigned long      float      double

低-------------------------------------------------------------------------------->高

这种转换是安全的,因为在转换过程中数据的精度没有损失。

逻辑运算符要求参与运算的操作数必须是bool型,如果操作数是其它类型,编译系统会自动的将其转换成bool型。转换方法是:非0数据转换为true,0转换为false。

赋值运算符要求左值和右值的类型相同,若类型不同,编译系统会自动进行类型转换,一律将右值转换为左值的类型。

(2)显示转换

显示类型转换的作用是将表达式的结果类型转换成另一种指定的类型。例如在标准C++之前,显示转换的语法形式有两种:

类型说明符(表达式)               //C++风格的显示转换符号

(类型说明符)表达式               //C语言风格的显示转换符号


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值