C++进阶—第四章

4.运算符和语句

4.1运算符

1.算术运算符

+运算符执行加法运算;-运算符执行减法运算;*运算符执行乘法运算;/运算符执行除法运算;%运算符执行求余运算。

2.关系运算符

关系运算符有>运算符、>=运算符、<运算符、<=运算符、==运算符、!=运算符,它们比较对象的大小,并返回bool值。如3>2,则返回1表示true。

3.赋值运算符

=为赋值运算符,它和==运算符容易混淆。赋值运算符的左侧对象必须可写,即不能是const修饰的变量。

4.递减/递增运算符

++为递增运算符,--为递减运算符。

int m = 1, n;

n = ++m;   //n=2,m=2

n = m++;   //n=2,m=3

当++运算符在变量的前面时,先执行自加运算,再执行赋值运算;当++运算符在变量后面时,先执行赋值运算,再执行自加运算。递减运算符同理。

注:当不修改变量的数值时,尽量使用前缀版本的递减/递增运算符。因为前缀版本的执行速度比后缀版本的快,所以在for循环中可以使用++i的语句。

double pb = 10;

double * pt = &pb;

cout << ++*pt << endl;  //打印11

cout << ++(*pt) << endl;//打印12

对于指针前缀版本的递减运算符, ++*pt和++(*pt)是一样的,都是将*pt的数值加一。递减运算符同理。

double pb = 10;

double * pt = &pb;

cout << (*pt)++ << endl;  //打印10

cout << *pt << endl;      //打印11

cout << *pt++ << endl;    //打印11

cout << *pt << endl;     //打印-1.21173e+235

指针后缀版本的递减运算符,(*pt)++ 是先打印出*pt的数值,再加1; *pt++ 是先打印出*pt的数值,再对pt加1,所以后面的*pt打印的是下一个地址的内容,因此数据是乱的。

总结:指针的递减/递增操作,只有*pt++是地址加1,其他都是所指向的变量加1。

5.逻辑运算符

逻辑与运算符&&是当两个对象都为真时,结果为真;否则假。逻辑或运算符||当两个对象中有一个真,结果为真;两个都为假,结果为假。逻辑非运算符!是当对象为真,结果为假;对象为假,结果为真。

if (0x06 && 0x08)

cout << "逻辑与运算符" << endl; //打印逻辑与运算符

0x06 && 0x08运算结果是1,因为对于逻辑与来说0x06和0x08都是1。

6.位运算符

位运算符的对象只能是整数类型,并将整数换算成二进制数据来操作。

<<运算符是左移,>>运算符是右移;&运算符是位与,|运算符是位或,~运算符是位取反,^运算符是位异或。

if (0x06 & 0x08)

cout << "逻辑与运算符" << endl;

else

cout << "位与运算符" << endl;//打印位与运算符

在前面介绍了逻辑运算符,它和位运算符很相似。0x06和0x08逻辑与则结果是1;若是位与,0x06 & 0x08换成二进制是0110位与1000,结果是0000。位运算就是将整数转换成二进制,然后一位一位的操作。

7.成员访问运算符

在C++中有结构体、类,它内部定义了很多成员&#x

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值