C++基础编程----4.3表达式
2015-10-17 07:58
375 查看
表达式
1.位运算符
1.1 一种名为bitset的标准库类型可以表示任意大小的二进制位集合。1.2 运算符:~ << >> & | ^(异或)
1.3 符号位如何处理没有明确的规定,强烈建议将位运算符用于处理无符号类型。
1.4 不要将位运算符和逻辑运算符(&&、||、!)搞混
1.5 bool status=quiz&(UL1<<27); // 第27个同学通过测验
2.sizeof运算符
2.1 Sale_data *p; sizeof(p); // 指针所占空间大小 sizeof(*p) // p所指类型空间的大小2.2 sizeof Sale_data::revenue; // 不需要具体对象,可以根据类直接获取类成员的大小
2.3 sizeof 不会把数组转换为指针进行处理
2.4 sizeof返回值是一个常量表达式,我们可以用其结果声明数组的维度。
3.类型转换
3.1 int ia[10]; int *ip=ia; // ia转换成指向数组的首元素的指针3.2 当数组用作decltype & sizeof typeid等运算符运算对象的时候,上述转换不会进行发生。
4.显示转换
强制类型转换cast-name<type>(expression);
static_cast 1.较大算术类型赋值给较小算术类型 2. void *p=&d; double *dp=static_cast<double *>(p); 强制转换的结果与原始地址值相等,必须保证我们转换后所得的类型就是指针所指的类型。d一定为double型才正确
const_cast const char *cp; char *q=static_cast<char *>(cp); // 错误 static_cast不能转换掉const性质
static_cast <string> (cp); // 字面值转换为string可以 const_cast<string>(cp); // 错误 const_cast只改变常量属性
相关文章推荐
- Lua学习笔记之运算符和表达式
- Lua教程(三):表达式和语句
- Lua基础教程之赋值语句、表达式、流程控制、函数学习笔记
- Ruby中case表达式详解
- C#编程自学之运算符和表达式
- 理解C#中的Lambda表达式
- javascript属性访问表达式用法分析
- JavaScript中:表达式和语句的区别[译]
- js 中的switch表达式使用示例
- js表达式计算器代码
- SQLite教程(六):表达式详解
- 用PHP实现的四则运算表达式计算实现代码
- Javascript表达式中连续的 && 和 || 之赋值区别
- javascript 用函数语句和表达式定义函数的区别详解
- JavaScript表达式:URL 协议介绍
- python 中的列表解析和生成表达式
- Lua中的操作符和表达式总结
- 将数字转换成大写的人民币表达式的js函数
- php使用正则表达式获取图片url的方法
- php使用正则表达式进行字符串搜索的方法