[C++][基础]2_表达式
2.1 算术操作符
2.2 关系操作符和逻辑操作符
2.3 位操作符
2.4 赋值操作符
2.5 自增、自减操作符
2.6 箭头操作符
2.7 条件操作符
Eg:
int i =10, j = 20;
int max = (i > j) ? i : j;
2.8 sizeof操作符
sizeof其作用就是返回一个对象或者类型所占的内存字节数, 其返回值类型为size_t。
2.9 逗号操作符
逗号表达式是一组由逗号分隔的表达式,这些表达式从左向右计算,但返回的结果是其最右边表达式的值。
Eg:
int i = (2+1, 3+2, 5*3);
cout << i << endl;
2.10 复合表达式的求值
2.11 new和delete表达式
2.12 类型转换
2.12.1 何时发生隐式转换
在混合类型的表达式中,用作条件的表达式被转换为bool类型
用一个表达式初始化某个变量,或将某一个表达式赋值给某个变量,则表达式被转换为该变量的类型。
Eg:
int ival = 3.14; //3.14转为整数
int *ip;
ip = 0; //0转为指针
2.12.2 算术转换
在算术表达式中,会将操作数类型转为表达式中的最大类型。
2.12.3 强制转换
强制类型转换符
dynamic_cast
dynamic_cast支持运行时识别指针或引用所指向的对象。
与其他强制类型转换不同,dynamic_cast涉及运行时类型检查。
若绑定到指针或引用的对象不是目标类型对象,失败!若是转换到指针失败,则dynamic_cast结果是0值,若是转换到引用失败,则抛出一个bad_cast异常。
const_cast
const_cast转换掉表达式的const性质。
static_cast
编译器隐式执行的任何类型转换都可以由static_cast显示完成。
reinterpret_cast
reinterpret_cast通常为操作数的位模式提供较低层次的重新解释。
转换形式:cast_type<convert_type>(expression);
Eg:
const char* p = "hello";
const_cast<char*>(p);
本文转自静默虚空博客园博客,原文链接:http://www.cnblogs.com/jingmoxukong/articles/2181404.html,如需转载请自行联系原作者