变量是一个具名的、可供程序操作的储存空间。在c++,变量(variable)和对象(object)一般可以互换使用。对象:是指一块能储存数据并具有某种类型的内存空间。
一、变量定义
1.注意初始化(赋予初始值)和赋值(擦掉当前重新赋值)是完全不同的操作
2.列表初始化,下面四句话等价,但是类型不同的初值(存在丢失数据的风险)将不会执行
int a = 10; int a = { 0 }; int a{ 0 }; int a(0);
double b = 1.3; int a{ b }; //报错 int c{ 2.5 }; //报错
3.定义在函数体外的变量默认初始化为0,函数体内部未初始化的内置类型变量的值是未定义的,将拷贝或访问值引发错误
4.每个类各自决定其初始化对象的方式,如string可以定义一个空串
二、变量声明与定义
1.变量能且只能被定义一次,但是可以被多次声明
2.要在多个文件中使用同一个变量,就要将声明和定义分离,一个文件定义其他文件声明
extern double pi = 3.14; //定义 int main() { extern double a; //声明 int b; //声明并定义 extern double PI = 3.1415; //在函数体内部试图初始化报错 return 0; }
三、标识符
1.关键字不可作为标识符;自定义标识符不可出现两个连续下划线,不能下划线紧连大写字母开头;定义在函数体外不得标识符不能以下划线开头
2.变量命名规范(约定俗成):体现具体含义;变量名一般用小写字符;自定义类名一般大写字母开头;多个单词且有明显区分用下划线
四、名字的作用域
1.作用域是程序的一部分,大多数作用域以花括号分割,名字的有效作用域始于名字的声明语句,以声明语句所在作用域末端位结束,可以分为全局作用域和块作用域
2.建议第一次使用变量时在定义它
3.嵌套的作用域优先内层作用域,其次时外层作用域