(1)声明的作用:向程序表明变量的类型和名字。一个文件如果想使用别处定义的名字,则必须包含对那个名字的声明。如果在当前编译语句的前面中没有找到相应的变量或者函数,也会在当前文件的后面或者其它文件中定义。
(2)定义的作用:主要用于为变量分配存储空间,同时负责创建与名字相关联的实体。当然,定义也会规定变量的类型和名字,还申请存储空间,也可能为变量附一个初始值。
(3)赋值的作用:把对象的当前值擦除,而已一个新值替代。
(4)初始化的作用:创建变量时赋予一个初始值,即从无到有。
声明和定义存在一定联系,即定义是一种特殊的声明,因为当定义变量时我们也向程序表明了它的类型和名字。但声明不是定义,可以通过使用extern关键字声明变量而不定义它。不定义变量的声明包括对象名、对象类型和对象类型前的关键字extern。
声明和变量又存在一些明显区别:首先,程序中变量可以声明多次,但只能定义一次;其次,变量声明不分配空间,而变量定义分配空间。
总结来说,声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器“认识”该标识符,但声明不一定引起内存的分配。而定义变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对相应的内存单元的命名。