变量
给一段连续的内存空间起别名,该空间用于可变数据的存储。
变量的定义
数据类型 变量名=值;
局部变量
局部变量在定义时最好进行初始化,如果没有在使用前没有对局部变量进行初始化,则它的值是随机值,易引发计算等错误。
声明
函数体或者代码块的内部
生命周期
存在于所属的函数体或者代码块的执行期间,函数体或者代码块执行结束后立即销毁。
全局变量
全局变量如果没有被初始化,那么编译器将自动将数据初始化为默认值,(整形初始化为0,指针则初始化为空)。
声明
函数外部
生命周期
存在于整个程序的执行期间,程序结束后销毁。
总的来说,不管是全局变量还是局部变量,最好全部进行变量的初始化。
常量
一个具有名称的内存位置,该空间用于不可变数据的存储。
常量的定义
使用#define宏定义
#define 变量名 值
使用这种方式,预处理器会在编译阶段将所有的#define指令的变量名替换成常量值。
使用const关键字
const 数据类型 变量名=值;
使用const关键字,在定义的时候必须进行数据的初始化。
成员变量
成员变量是定义在类或结构体中的变量。它们用于描述对象的特征或属性,并且每个类的实例都有自己的一组成员变量。
成员变量又分为私有成员变量,公有成员变量,保护成员变量。成员变量和所处的类的权限有关。
静态成员变量
静态成员变量属于类的成员,而不属于类的对象。
特点
1.静态成员变量必须在类中声明,类外定义。
类中声明
static 变量类型 变量名;
类外定义(并进行初始化)
变量类型 类名::静态成员变量名=值
2.所有该类的对象共享一个静态成员变量的副本。也就是说,当该类的对象修改了静态成员变量的值,那么别的对象访问该静态成员变量为新值。
3.静态成员变量只有在程序结束时才销毁。
访问方式
访问静态成员变量的方式有两种,如下所示:
1.类名::静态成员变量
2.通过类的对象访问 对象名.静态成员变量
非静态成员函数
非静态成员函数是通过类的对象调用的函数。
它们可以访问类的非静态成员变量,并使用对象的隐式指针this
来访问所属对象的成员变量和其他成员函数。
静态成员函数
static 返回值类型 函数名()
{
}
静态成员函数是与类关联但不依赖于特定对象的函数。静态成员函数可以通过以下方式直接调用静态成员变量。
类名::静态成员变量