C++的数据运算
运算符及其使用
所有的的运算符都会从他们的操作数中产生一个值。除了赋值、自增、自减运算符之外,运算符所产生的值不会修改操作数。修改操作数被称为副作用(side effect)。一般使用修改操作数的运算符就是为了产生这种副作用,但是应该记住他们所产生的值就像没有副作用的运算符产生的值一样都是可以使用的。
赋值运算符
赋值操作由运算符“=”实现。意义是取右边的值[通常称为右值(rvalue)]并把它拷贝给左边[通常称为左值(lvalue)]。右值可以是任意的常量、变量或能产生值,但是左值必须是一个明确命名的变量(也就是说,应该有一个存储数据的物理空间)。
位运算符
与(&)、或(|)、非(~)、异或xor(^),位运算符只适用于整形char、int和long,浮点数使用特殊的内部格式,无法使用位运算符进行操作。
C++中的显式转换
转换(cast),就是告诉编译器说“忘记类型检查,把它看做是其他类型”。这会在C++的类型系统中引入一个漏洞,并且阻止编译器报告这个漏洞,所以,尽量少的使用转换。
C++提供了一个显式转换的语法,用来完全代替旧的C风格转换,主要有:
|
static_cast |
用于“良性”和“适度良性”转换,包括不用强制转换 |
|
canst_cast |
对“const”和/或“volatile”进行转换 |
|
reinterpret_cast |
转换为完全不同的意思 |
|
dynamic_cast |
用于类型安全的向下转换 |
浙公网安备 33010602011771号