C++变量类型

变量

变量是程序可操作的存储区的名称。C++中每个变量都有指定的类型,不同类型的变量有不同的存储大小和布局。变量存储于内存中,运算符可应用于变量上。

变量的类型

类型 解释
bool 存储true或false
char 一个字符,通常占一个字节。整数类型。
int 整形,占四字节。
float 单精度浮点数,四字节,1位符号,8位指数,23位尾数
double 双精度浮点数,八字节,1位符号,11位指数,52位尾数
void 类型缺失
wchar_t 宽字符型

另外可以定义枚举指针数组引用数据结构等。

变量的定义和初始化

变量的定义即要求编译器在此处创建变量的存储:

typeA var;                          //声明一个变量
typeB var1, var2, var3;             //声明多个变量

变量可以在定义的时候被初始化:

int a;                          //声明时未初始化
int b = 3;                      //声明时初始化为3

定义时没有初始化的带有静态存储持续时间的(一般表现为全局变量)变量默认初始化为NULL,即所有字节都是0;

其他所有变量(一般表现为局部变量)的初始值未定义的话为为其开辟的存储空间的原内容(乱码)

强烈建议定义变量时手动初始化以确保安全

在变量创建的时候指明其类型有助于划定对应的空间,和未来程序以何种方式处理(解读)此变量的指针。

变量的声明不同于变量的定义

int a = 0;     //定义并声明了变量 a
extern int a;  //只是声明了有一个变量 a 存在,具体 a 在哪定义的,需要编译器编译的时候去找。

类似于函数的声明与函数的定义之间的区别。

void fun1();  //函数声明

void fun1(){  //函数定义
    cout<<"fun1"<

类型转化规则

分为自动转化强制转化

自动转化

  1. 参与运算的量的类型不同,则转化为相同后运算
  2. 数据类型转换力求保证精度:
    • 向字节数高的方向靠拢;
    • 向无符号的方向靠拢。
  3. 浮点数运算统一转换为double双精度再进行运算。
  4. char与short运算时先转化为int再参与运算。
  5. 赋值运算保留左值的数据类型(可能会丢失精度)。

强制转化

可以手动通过类型转化运算来实现:一般形式为(类型说明符)表达式的形式。

int a = 1;
double b = 2.1;
cout << "a + b = " << a + (int)b << endl;  //输出为a + b = 3

C++赋值运算符的左值(lvalue)和右值(rvalue)

左值 (lvalue, locator value) 表示了一个占据内存中某个可识别的位置(也就是一个地址)的对象,左值可以被操作。

右值(rvalue)表示了一个非内存可识别对象的值,不能被操作。

左值和右值的说法常在错误信息中出现。

你可能感兴趣的:(C++变量类型)