首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

C+快速入门:7.复合赋值运算符_数据类型转换

这一阶段的课程主要给初学者和零基础的同学准备,让大家快速入门并熟悉C++为后序学习《C++ Primer》做准备,如果您已经具备一定的C++基础,请先忽略这阶段课程,直接等待《C++ Primer》。

复合赋值运算符:

在使用C++进行数学运算时,有时候需要变量的值本身做一些改变,例如,假定有一个名为number的变量,并希望它的值增加1,可以用以下语句来实现:

number = number + 1

赋值运算符右侧的表达式计算number的值加1,并将计算的结果再次赋值给number,替换它以前存储的值。这个语句的实际作用是在number上加1。例如,如果在执行该语句之前,number等于5,那么执行该语句后,number将等于6。

类似的,还还可以执行如下语句:

number= number – 1

number= number * 2

number= number / 2

number= number % 2

但是看到上面的语句,总觉得有点麻烦,因为number变量在每个语句里面都出现了两次,为了简化编码的形式,C++提供了复合赋值运算符:

+= a += 5; a = a + 5;

-= b -= 5; b = b - 5;

*= c *= 5; c = c * 5;

/= d /= 5; d = d / 5;

%= e %= 5; e = e % 5;

由此可以看出,复合赋值运算符不需要输入变量名两次。

数据类型转换:

对两个操作数执行数学运算,结果类型取决于操作数类型,例如:对int和double求值的规则如下:

对两个int求值,结果是int

对两个double求值,结果是double

对一个int和一个double求值,int临时转换成double类型,结果是double类型(使用不同类型操作数的表达式称为混合类型表达式)

前两种情况很容易理解:int运算结果是int,double运算结果是double。用一个例子来说明以下上面第三种情况混合类型表达式:

double= number;

number= 5 * 2.0;

赋值语句执行时,值5被转换成double值5.0并乘以2.0,结果10.0被赋值给number。int向double的转换时隐式发生的。如果想要显示转换,可以使用强制类型转换表达式,它的格式如下所示:

static_cast(值)

其中,值是要转换的变量,数据类型是转换成的目标类型。例如:

doubled_val = 3.7;

inti_val;

i_val= static_cast(d_val);

上述代码强制类型转换表达式返回d_val值转换成int后的结果,double转换成int时,小数部分被丢弃,所以该语句将3存储到i_val中,但是d_val的值不会改变。

如果C++不能自动执行你希望的转换,强制类型转换就能派上用场了。

看下面这样一段代码:

#include

usingnamespacestd;

intmain(void)

{

intbooks;

intmonths;

doubleper_Month;

cout

cin >> books;

cout

cin >> months;

per_Month =static_cast(books) / months;

cout

return0;

}

要阻值整数除法,必须将其中一个操作数转换成double再执行除法,这样会强制C++将另一个操作数转换成double类型。

详细的讲解视频如下所示:

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20200518A054BV00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券