问答题 变量定义与变量声明有什么区别
【正确答案】
【答案解析】在C/C++程序设计中,任何变量在使用前都需要进行定义或声明,定义(definition)为变量分配存储空间,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义。例如,int my array[100],而声明(declaration)是指向程序表明变量的类型和名字。定义也是声明,当定义变量时声明了它的类型和名字。可以通过使用extem关键字声明变量名而不定义它,它所说明的并非自身,而是描述其他地方创建的对象,可以多次出现,如extern int my_array[]。
如果程序前面都没有出现过a这个变量,这时要使用a,就必须让程序知道要使用a这个变量,这时候写入int a,以前没有a这个变量的,现在程序为了记住它,就得为它分配空间,于是这是一个定义。如果程序包含的其他文件里已经出现过a了,这证明程序已经为a分配内存,这时如果要使用a,只需要通过extern int a告诉程序,这个a在其他地方定义过即可。
“定义也是声明”,这说明定义包括声明,对于int a来说,它既是定义又是声明,对于extern int a来说,它是声明不是定义。一般为了叙述方便,把建立存储空问的声明称定义,而不把建立存储空间的声明称为声明。