【24.1.19笔记】C++Primer自学 Day15

本文介绍了C++中的表达式概念,包括一元和二元操作符的使用,算术操作符的功能及异常情况,以及等于、关系和逻辑操作符的特性。还讨论了类型转换、精度问题以及操作符的优先级和结合性的重要性。
摘要由CSDN通过智能技术生成

四、表达式

1、什么是表达式?

        表达式由一个或者多个操作数构成。更一般情况下,表达式要加上操作数之间的操作【操作符】。

ivec[ size/2 ] * delta

        作用在一个操作数上的操作符叫做一元操作符,同理,作用在两个操作数上的叫做二元操作符。一般来说,表达式的结果是右值。

        表达式的结果一般由子表达式的计算顺序决定,所以我们要了解操作符的优先级和结合性。

2、算术操作符

操作符功能用法
*a*b
/a/b
%取余a%b
+a+b
-a-b

        如果使用了int类型,那么小数的部分会被裁掉:

int ival1 = 21 / 6; // 3

        取余操作不能用于浮点数类型【取余操作后的值一定是整数】:

        1、如果都是正数,那么结果为正;

        2、如果有负数存在,那么最后取余的正负号由机器决定【不同机器产生结果不同】;

        算术异常情况:除以0或者结果溢出【结果的值超过了该类型长度】

        显式类型转换:显式地转换对象的数据类型

char byte_value = 0 ;
cout << "byte_value: " << byte_value << endl; //byte_value:
static_cast<int> ( byte_value );
cout << "byte_value: " << byte_value << endl; //byte_value: 0

        C++的limits文件提供了内置类型有关的信息,告诉我们它们的取值范围。

        浮点数类型在运算是还有精度的问题【受底层数据类型的固有精度影响】:我们使用浮点数会带有小数点,当我们从十进制转换成二进制储存这个数字的时候,由于二进制储存的长度有限,小数部分不能用二进制精确的还原,会存在一定的误差。

3、等于、关系和逻辑操作符

操作符功能用法
逻辑非!a
<小于a<b
<=小于等于a<=b
>大于a>b
>=大于等于a>=b
==等于a==b
!=不等于a!=b
&&逻辑与a&&b
||逻辑或a||b

        这些操作符的结果都是bool类型,返回true或false。

        二元运算符潜在的缺点:

        1、二元操作符左右运算顺序是未定义的,所以我们在对二元关系符进行操作时,最好是顺序无关的:

if ( ia[ index++ ] < ia[ index ] ) 
//如果先运算左边,那么左边是ia[0],然后index++,然后右边是ia[1]
//如果先运算右边,那边右边是ia[1],然后左边是ia[0],然后index++

        2、如果连续使用的话,可能会出现不对的情况。

  • 9
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值