按变量的作用域分类:
1.局部变量:在函数内定义的变量,作用域仅限于函数内。
2.全局变量:定义在函数之外的变量,它的作用域从定义处开始,到所在文件的结束。作用域是所在的整个文件。
3.外部变量:一个文件中的全局变量可以在另一个文件中作为外部变量使用,某个文件中引用另一个文件中的全局变量。用extern声明,说明这个变量是在其他文件中已经定义过的外部变量。那么,该文件不会为外部变量分配内存。
extern 类型说明符 外部变量名;
extern int student;
注意:全局变量是外部变量;
按变量的存储方式分类:
1.静态存储变量:变量定义时就分配存储单元并一直保持不变,直至整个程序结束。
全局变量属于此类存储方式。
静态变量的类型说明符为:static
静态变量当然是属于静态存储方式,但是,属于静态存储方式的变量不一定是静态变量,如外部变量。
- 静态局部变量:
(1)在局部变量的说明前加上static说明符就构成。
(2)生存期:静态局部变量在函数内定义,但它的生存期是整个程序。
(3)作用域:静态局部变量的生存期虽然为整个程序,但其作用域仍与自动变量相同。<