1、变量的定义:变量的定义用于为变量分配存储控件,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义。
2、变量的声明:用于向程序表名变量的类型和名字。程序中变量可以声明多次,但只能定义一次。
3、两者联系和区别:
(1)定义也是声明,因为定义变量时我们也想程序表明了它的类型和名字。
(2)但声明不是定义,可以通过使用extern关键字声明变量而不是定义它。不定义变量的声明包括对象名、对象类型和对象类型前的关键字extern。
例:
extern int i;//声明但是不定义
int i;//声明也定义
extern声明不是定义,也不分配存储空间,事实上,它只是说明变量定义在程序的其他地方。
例如:extern double pi = 3.1416;//定义了
double pi;//重定义,不合法
注意:在C++语言中,变量必须仅能定义一次,而且在使用变量之前必须定义或声明变量。
4、为什么需要区分声明和定义:
C++程序通常由许多文件组成。为了让多个文件访问相同的变量,C++区分了声明和定义。任何在多个文件中使用的变量都需要既有定义又有声明。在这种情况下,在一个文件中定义了变量,在其他使用改变了的文件中则只能包含变量的声明(不能再包含定义,因为变量只能定义一次)。
5、真正用的时候这种需要被别的文件用的变量,必须在本文件中定义好,比如在文件1中定义extern int i = 0;然后才可以在别的文件中使用,使用方式是:在类体的外部使用extern int i;这样在这个类中就可以使用该外部变量了,再次强调必须先定义好,才能在别的地方通过extern声明使用。