基本内置类型
- 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类型
本文介绍了C++中的基本内置类型及其存储范围,如bool、char、int、float和double等。typedef用于创建类型别名,enum用于定义枚举类型。文章还详细讨论了不同类型的转换,包括静态转换、动态转换、常量转换和重新解释转换,展示了如何在不同场景下进行类型间的操作。
289

被折叠的 条评论
为什么被折叠?



