对象:一块能存储数据并具有某种类型的内存空间
初始化:创建变量的时候赋予其一个初始值,
赋值:把对象当前的值擦除,使用一个新值代替
列表初始化(采用花括号形式的):
int a = 0;
int a = {0};
int a{0};//c++11
int a(0);
注意:如果使用列表初始化且初始值只存在丢失信息的风险,会报错
默认初始化:
定义变量时未指定初始值,则被赋予默认值,由变量类型和位置决定
定义在函数体之外的为0
函数体内部的内置变量不会被默认初始化
声明:让名字为程序所知 extern int I; 函数体内部不允许初始化一个extern声明的变量
定义:创建于名字关联的实体
注:变量只能定义一次,可以多次声明
标识符:
必须字母、下划线开头。
全局作用域 块作用域
内层作用域 外层作用域
复合类型(引用和指针)
引用(左值引用):引用不是对象
引用的值与初始值绑定
实际是为已存在的对象起别名
&开头
初始值必须为对象
指针
:本身即是对象
无须在定义时赋初值
*开头
存放对象的地址,&取地址符,引用不是实际对象,不可取
利用指针访问对象:*符号
空指针(nullptr)
nullptr
0
NULL(include cstdlib)
void*指针
可以存放任意对象的地址
不能直接操作所指的对象
理解复合类型的声明
指向指针的指针
*的个数
指向指针的引用