这一阶段的课程主要给初学者和零基础的同学准备,让大家快速入门并熟悉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类型。
详细的讲解视频如下所示:
领取专属 10元无门槛券
私享最新 技术干货