文章目录
- 基本内置类型
- 存储范围
- typedef 声明新名字
- enum 枚举类型
- 类型转换
基本内置类型
- bool
- char
- int
- float
- double
- void
- wchar_t ⇒ short int
存储范围
可以这样 sizeof(int) 来确认 int 占用字节数
-
char,1字节,-128~127 或 0~255
-
wchar_t,2或4字节,1 个宽字符
-
int,4字节,-214 … 9个零
-
short int,2字节,-32768~32767
-
long int,8字节,-922 … 18个零
-
float,4字节,-34 … 7个数字
-
double,8字节,-17 … 15个数字
-
long double,16字节,18-19位数字
typedef 声明新名字
语法:typedef type newName;
比如使用 typedef int feet; 可以告诉编译器 feet 是 int 的另一个名称
enum 枚举类型
这里隐含的数值 red = 0,green = 5,blue = 6
enum color {red,green = 5,blue
};
下面的代码声明了一个 color 类型变量,且变量值被赋予为 blue
color c;
c = blue;
类型转换
- 静态转换:不进行任何类型检查,相似类型之间转换比如 int → float
int i = 10;
float f = i;
- 动态转换:基类指针或引用 ⇒ 派生类指针或引用,如果不能进行转换会返回空指针 / 引发异常
class A {};
class B : public A {};int main() {A* ptr_a = new B;B* ptr_b = dynamic_cast<B*>(ptr_a); // 基类指针 -> 派生类指针
}
- 常量转换:将 const 类型的对象转换成非 const 的,不能改变对象的类型
int main() {const int i = 10;int& r = const_cast<int&>(i);cout << r;
}
- 重新解释转换:将一个数据类型的值重新解释为另一个数据类型
int i = 10;
float f = reinterpret_cast<float&>(i); // 重新解释将int类型转换为float类型