《实用C++》第8课:赋值运算符和赋值表达式

本文深入探讨C++中的赋值运算符和复合赋值运算符,包括精度丢失、取值范围越界的问题,以及逗号表达式的使用规则。通过实例讲解,帮助读者理解并掌握这些关键概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

本文转载自:VC驿站

https://www.cctry.com/thread-278817-1-1.html

1、赋值运算符:
总结一个原则:多的给少的会丢失,少的给多的没事儿。
例如:int x = 3.5; 赋值完了之后 3.5 这个浮点类型的值肯定丢失小数点部分,变成了整形的3;
float y = 2; 赋值完了之后 2 的值不会有任何丢失,不过变成了浮点类型的数:2.0;

另外,不仅仅有小数点部分的丢失,取值范围有可能越界,例如:
short 能表示的范围是:-32768~+32767,最大值也才3万多,那我要是这样赋值呢?
short q = 50000; 大家可以把这句话放到 vs2013 中实践一下,发现复制完成后,q的值变负数了,说白了也就是越界了。为什么会变成负数呢,这里涉及到补码的东西,以后会给大家讲解。
一个水桶容量就2升,你非要装4升,那桶还不撑坏了呀?

另外,把一个负数赋值给一个无符号的数也会发生问题的,例如:
unsigned int x = -2; 这样的问题也不应该发生。

总结:赋值运算的时候要注意的两点:精度的丢失,取值范围的越界。

2、复合赋值运算符:
上节课给大家讲解了:
int x = 0;
x = x + 1; //可以替换为 x++; 既简单又方便
那我要问:x = x + 8 呢?有什么简单的写法吗?单纯 x++ 或者 ++x 都不行啊。
这里给大家一种新的简便写法:x += 8; 就可以啦。同理,其他的还有很多,例如:
int x = 10;
x -= 2; //x的值为8

下面我把支持这类操作的运算符都给大家列出来:
+=, -=, *=, /=, %=, <<=, >>=, &=, ^=, |=

3、逗号表达式:
逗号表达式在以后的编程中也会经常遇到,其规则是:所有以逗号间隔的表达式都进行计算,各个表达式的计算顺序按照从左往右。整个表达式的值是最后一个逗号表达式的值。例如:
int x = 0;
int y = 0;
x +=2, y+= 3;
int q = ((x++), (++y));
我要问问大家了,q的值是多少呢?

4、小作业:
①、
int x = 2;
x = 3 *5, x*4;
经过计算之后,变量 x 的值是多少呢?

②、自学运算符的优先级:
《实用C++》第8课:赋值运算符和赋值表达式 


具体大家听我视频讲解吧,语音的形式比文字更好表达一些,这样大家能听的更明白一些。

第8课视频教程下载地址:

https://www.cctry.com/thread-278817-1-1.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值