目录儿
- 4 变量
- 4.1 原始数据类型
- 字符 char
- 整型 short
- 整型 int
- 整型 long
- 整型 long long
- 单精度浮点型 float
- 双精度浮点型 double
- 布尔型 bool
- 4.2 sizeof 关键字
- 5 指针和引用
4 变量
4.1 原始数据类型
原始数据类型是构建C++程序的最基础数据类型
所有数据都是基于这些原始数据类型来存储的
后面各种第三库的包装类型、或是自定义的数据类型,其底层都是这些原始数据类型。
字符 char
char 类型用于(在一定范围内)存储整型数据(表面上是存储字符)
char 类型数据一般占据 1 byte / 8 bit,具体大小由编译器决定
char variable_name = 65;
char variable_name = 'A';
如果不作显示声明,char类型数据默认是有符号的:signed
当然,我们可以显示地把一个char数据声明为无符号整型:unsigned
但是一般不会这么做,因为没有意义
我们定义char类型基本都是用于存储字符,字符对应的编码都是正的整型数据
unsigned char variable_name; // 不推荐
一般而言
char类型是用来表示存储的数据是一个字符数据,所以cout打印char类型数据的时候会把存储的整型根据编码表转成对应的字符进行输出。
整型 short
short 类型数据一般占据 2 byte / 16 bit,具体大小由编译器决定
short variable_name = 65;
short variable_name = 'A';
如果不作显示声明,short类型数据默认是有符号的:signed
当然,我们可以显示地把一个short数据声明为无符号整型:unsigned
unsigned short variable_name;
整型 int
int 类型用于(在一定范围内)存储整型数据
int 类型数据一般占据 4 byte / 32bit,具体大小由编译器决定
int variable_name = 65;
int variable_name = 'A';
如果不作显示声明,int类型数据默认是有符号的:signed
当然,我们可以显示地把一个int数据声明为无符号整型:unsigned
unsigned int variable_name;
整型 long
long 类型用于(在一定范围内)存储整型数据
long 类型数据一般占据 4 byte / 32 bit,具体大小由编译器决定
long variable_name = 65;
long variable_name = 'A';
如果不作显示声明,long类型数据默认是有符号的:signed
当然,我们可以显示地把一个long数据声明为无符号整型:unsigned
unsigned long variable_name;
整型 long long
long long 类型用于(在一定范围内)存储整型数据
long long 类型数据一般占据 8 byte / 64 bit,具体大小由编译器决定
long long variable_name = 65;
long long variable_name = 'A';
如果不作显示声明,long long类型数据默认是有符号的:signed
当然,我们可以显示地把一个long long数据声明为无符号整型:unsigned
unsigned long long variable_name;
单精度浮点型 float
float 类型用于(在一定范围内)存储浮点数据
float 类型数据一般占据 4 byte / 32 bit,具体大小由编译器决定
float variable_name = 1.2f;
给
float类型的变量赋值时需要加上一个f/F,否则编译器会把这个浮点数当成double处理:
加了f/F就向编译器说明这是个float类型的数据:
双精度浮点型 double
double 类型用于(在一定范围内)存储浮点数据
double 类型数据一般占据 8 byte / 64 bit,具体大小由编译器决定
double variable_name = 1.2;
布尔型 bool
bool 类型用于代表ture/false
bool 类型数据一般占据 1 byte / 8 bit
bool variable_name = true;b
将bool类型的数据打印输出时以0代表false
以其他非0数字,通常是1代表true,具体取决编译器
其实
bool类型的数据只占用了1bit,但为什么它确需要占据1byte这么多呢?
原因是内存寻址的时候是以byte为最小单元的,因此最小的数据类型只能小到1byte,哪怕它实际用到的内存大小比1byte小!
4.2 sizeof 关键字
sizeof关键字可以获取某个变量,或者具体的数据类型所占据的字节数
int main() {
float flo_var = 1.2f;
int int_var = 5654;
std::cout << sizeof(flo_var) << std::endl; // 4
std::cout << sizeof int_var << std::endl; // 4
std::cout << sizeof(double) << std::endl; // 8
std::cin.get();
}
不同版本的编译器对加不加
()要求可能不同,但是规范而言最好加上sizeof(xxx)
5 指针和引用
有了原始数据类型之后,我们可以把这些原始数据类型转换成指针或引用
比如现在有一个bool类型的变量
bool bool_var = false;
转成成指针
bool* bool_var = false;
转换成引用
bool& bool_var = false;



















