变量在程序运行时值可以改变,其功能是存储数据,变量的类型决定了变量在内存中的大小。在C语言中,变量名作为标识符的一种,命名原则都和标识符是一样的;即变量由字母、数字和下划线组成且不能以数字开头大小写敏感。
变量的类型也就是数据的类型(在数据类型章节已描述)比如,char、int、long、float、double等基本类型;当然也可以是枚举、结构体、共用体、空类型、以及指针类型等,后续的章节会详细说明到这几种类型。
那么在C语言中如何定义一个变量呢?可以参考下面的格式定义变量,type表示被定义的变量类型,variables_list是被定义变量列表,列表中的各个变量用“,”分开,在C语言中,语句都是以“;”作为语句结束。
type variables_list;
例如:
//定义两个整型变量a和b
int a,b;
//定义两个单精度浮点型变量f1和f2
float f1, f2;
//定义两个双精度浮点型变量num1和num2
double num1, num2;
当然在定义变量语句时,同时也可以对所定义的变量赋初始值。
//定义两个整型变量a和b, 初始值分别为1和2
int a=1, b=2;
//定义两个单精度浮点型变量f1和f2, 初始值分别为1.1和2.2
float f1=1.1, f2=2.2;
//定义了两个双精度浮点型变量num1和num2,初始值分别为=1.111和2.222
double num1=1.111, num2=2.222;
在工程中需要格外注意的一点,对新定义的变量在使用前一定要进行初始化,给新定义一个合理的初始值,这个尤为关键。否则,可能会造成相当严重的系统bug。
在C语言中,有以下几种类型的变量:
- 局部变量(local variable):在函数或语句块中声明的变量,,局部变量必须在语句块的开头声明。
- 全局变量(global variable):在函数或语句块之外声明的变量,它对文件中的任何函数有效,但也需要在开头对其声明。
- 静态变量(static variable):使用static关键字声明的变量,多次函数调用时会保留其值。
- 自动变量(automatic variable):默认情况在语句块声明的所有变量都是自动变量,我们可以使用auto关键字声明自动变量。
- 外部变量(external variable):在多个源文件中可以使用外部变量共享一个变量,在需要使用这个“共享变量”的源文件里我们可以使用extern来声明外部变量。外部变量通常也是全局变量。
//file1.c
int e = 10;
//file2.c
int a = 1; //全局变量
extern int e; //外部变量
int function()
{
int b = 2; //局部变量
static int c = 3; //静态变量
auto d = 0; //自动变量
}