有关c++ 变量的一些关键概念
c++是静态类型语言,在编译时会做类型检查,变量的类型决定了它的使用方式。静态类型检查有助于更早的发现程序错误。
左值和右值:左值可以出现在赋值语句的左边或右边;右值只能出现在赋值语句的右边。变量是左值,字面值常量是右值。
变量名以字母或下划线开头,由字母、数字、下划线组成,并且区分大小写。
变量的声明和定义:定义用于为变量分配存储空间,可以指定初始值。声明仅用于表明变量的类型和名字。声明需要在类型前加extern关键字。
int i; // 定义 extern int i; // 声明 extern double pi = 3.14; // 定义(声明不允许初始化,如果声明带初值,则被当做定义)
变量的初始化:在定义时指定初始值称为初始化。分为两种形式:复制初始化(copy-initialization)和直接初始化(direct-initialization)。
int ival(1024); // direct-initialization int ival = 1024; // copy-initialization
复制初始化和赋值很容易混淆。初始化指创建变量并给它赋初值,而赋值则是擦除对象的当前值并用新值代替。
对于内置类型变量,如果定义时没有指定初始值,并且变量为全局变量,则系统自动将其初始化为0,如果变量为函数体内的局部变量系统不会进行自动初始化。未初始化变量仅可以用作赋值操作符的左操作数,作任何其他用途都是未定义的。