1.成员变量:写在类声明的大括号中的变量
作用域:只能通过对象进行访问,成员变量不能在定义的同时进行初始化。
存储:堆。存储在对象对应的堆中,不能自动释放,只能手动释放。
2.局部变量:写在函数或代码块中。
作用域:从定义行开始,一直到函数的大括号或return。局部变量可以先定义,后初始化。也可以定义的同时初始化。
存储:栈。栈中数据系统会自动分配内存。
3.全局变量:写在函数和大括号外。
作用域:从定义行开始,一直到文件结束。全局变量可以先定义,后初始化。也可以定义的同时初始化。
存储:静态区。程序运行开始自动分配存储空间,一直到程序结束才会释放。
静态区:全局变量、静态全局变量、静态局部变量。
栈:局部变量。
堆:成员变量。
全局变量 调用范围:整个源程序中,多个源文件均可调用。
静态全局变量 调用范围:整个源程序中,只有定义它的源文件才可用。 只初始化一次。
函数 调用范围:源程序中多源文件。 类中函数,需要 this 指针,进行指向。
存储:调用几次,拷贝几次内存。
静态函数 调用范围:定义它的源文件。 并且无类的 this 指针,进行指向。
存储:只分配一次内存。