(1)变量:本质上指代存储数据的内存单元,变量的定义用于为变量分配存储空间,还可以为变量指定初始值。在一个C程序文件中需要引用其他程序文件中定义的变量时,就需要进行声明。当定义变量的时候我们声明了它的类型和名字,可以通过使用extern声明变量名而不定义它。不定义变量的声明包括对象名、对象类型和对象类型前的关键字extern。此处要注意,extern声明不是定义,也不分配存储空间,事实上它只是说明变量定义在程序的其他地方。程序中变量可以声明多次,但只能定义一次。        

例如,下面是对变量a的定义和声明。

int a;                 

//定义一个变量,编译系统应为其分配存储单元

extern int a;    

//声明a是一个整型变量


(2)常量:常量一般用修饰符const,含义是其所修饰的对象为常量。若一个变量被修饰为const,则该变量的值就不能被其他语句修改。例如:

const int a= 10;   

//a的值被初始化为10,a成为常量,之后在其作用域内不能被修改


(3)标识符:在C程序中使用的变量名、函数名、标号以及用户定义数据类型名等统称为标识符。除库函数的函数名由系统定义外,其余都由用户自定义,C语言的标识符一般应遵循如下的规则:

(1)标识符必须以字母a~z、A~Z或下画线开头,后面可跟任意个字符,这些字符可以是字母、下画线和数字,其他字符不允许出现在标识符中。

(2)标识符区分大小写字母。

(3)C语言中的关键字(保留字)有特殊意义,不能作为标识符。

(4)标识符最好使用具有一定意义的字符串,便于记忆和理解。变量名一般用小写字母,用户自定义类型名的开头字母大写。

(4)作用域:通常来说,一段程序代码中所用到的名字并不总是有效和可用的,而限定这个名字的可用性的代码范围就是这个名字的作用域。同一个名字在不同的作用域可能表示不同的对象。C语言程序中的名字有全局作用域(例如全局变量)、块作用域(例如局部变量)之分,作用域可以是嵌套的。尽可能将变量定义(声明)在最小的作用域内,并且为其设置初始值。