C++ 数据类型与变量

一、字节与比特的关系。

计算机使用比特序列存储数据,每个bit值为0或1。

可寻址的最小内存块称为字节,计算机将内存中每个字节与一个数字(地址)关联起来。

单位换算:

1Byte (B)字节 =  8 bit 位  //一个字节由8比特构成

1 KB =1024 B

1MB= 1024KB

1GB=1024MB

二、数据类型

可以使用地址来表示从这个地址开始的大小不同的比特串。地址确定了数据存放的起始位置;数据类型决定了将接下来多少比特数作为一个整体解释成数据。

例如定义int ival=3; int *p=&ival; 则将地址p之后的16位比特解释成一个int类型的量。

void* 指针是特殊类型的指针,可用于存放任意对象的地址。但无法确定该地址是什么类型的对象。即仅表示内存空间中的某个地址,无法访问该地址实际存储的对象。

数据类型与bit数

数据类型 比特数 数值范围
char (一个char空间应确保可存放机器基本字符集中任意字符对应的数字值,一个字符char的大小等于一个机器字节) 8bit  
int8_t 8bit  
int16_t 16bit  
int64_t 64bit  

int 

32bit -2147483648 ~ 2147483647
long long 64bit  
float 32bit  
double 64bit  

unsigned int 通常缩写为unsigned

三、变量

对象可广义地指一块能存储数据并具有某种类型的内存空间。例如类的对象。

变量:一个具名的、可供程序操作的存储空间。(命了名的对象叫做变量)。

变量的声明规定了变量的类型和名字;变量的定义规定变量的类型和名字,并负责创建与名字关联的实体,即申请存储空间,也可能为变量赋初始值。

int x=5; 定义了变量x,其类型为int,并申请了存储空间,初始化为5。

四、变量初始化

可以使用字面量\字面值初始化变量,或者为变量赋值。

Literal (A letter or symbol that stands for itself as opposed to a feature, function, or entity associated with it in a programming language),即字面量。

PS: C++ primer中文版中给了literal一个非常糟糕的翻译——字面值常量,这个翻译非常容易引起误解:使用常量初始化变量,或者将一个常量赋值给一个变量,这是怎么理解? 其实没有所谓的“常量”的概念,其实就是字面量。

int a = 9; //a是变量,9是字面量
string b = "Hello" //Hello是字面量

字面值的形式和值决定了它的数据类型。

十进制字面值的类型是int, long, long long中能容纳其值的最小的一个。

0x或0X开头 : 16进制,每位使用0~9、A~F表示

0开头:8进制

8进制和16进制字面值的类型是能容纳其数值的int, unsigned int, long, unsinged long, long long, unsigned long long中尺寸最小的。

字符和字符串字面值添加前缀、整形和浮点型字面值添加后缀可改变默认类型。例如:

3.14L , 类型为long double

L'a', 类型为wchar_t.

猜你喜欢

转载自blog.csdn.net/Cxiazaiyu/article/details/104259044