C++基础Ⅱ变量、指针

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;

bool类型的数据打印输出时以0代表false
以其他非0数字,通常是1代表true,具体取决编译器

其实bool类型的数据只占用了1bit,但为什么它确需要占据1byte这么多呢?
原因是内存寻址的时候是以byte为最小单元的,因此最小的数据类型只能小到1byte,哪怕它实际用到的内存大小比1byte小!
只要这个1byte的内存里面有任何数值,都是true,因为只有0000 0000代表false

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;

待补充

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值