C++ 声明与定义 浅谈
一、声明与定义
1、定义变量
在C++ 中定义一个基本变量的方式,应首先定义一个类型说明符,其后在跟一个或多个变量名。我们知道C++语言属于静态语言,在程序编译阶段会检查类型,所以我们在定义一个变量的时候一定要声明其类型,这样计算机才能够根据声明的类型来判断其能够参与哪些运算。
int a , b ; //定义了int型变量a,b
我们在定义一个变量的时候,可以对其进行初始化
int a , b=12 ; //定义了int型变量a,b,并将b初始化为10
注意:初始化与赋值并不相同,初始化是在开辟内存空间时赋予的一个初值,而赋值是将原来的值擦除再赋予新值。
没有显示初始化的变量会默认初始化,而默认初始化的结果与变量所在位置有关,定义在函数体之外的变量会被默认初始化为0,定义在函数体之内的变量,他的内容是未定义的。
2、声明
C++作为一个灵活的语言,支持分离式的编译机制,有时我们会将一个程序拆分为多个文件来编写,而每个文件都可以进行独立的编译。在实际开发中我们有时需要调用替他文件定义的变量,这个时候就需要声明。
声明就是让变量的名字被程序所知,方便一个文件调用其他文件中的变量。声明与定义的不同在于,定义申请了一块内存来存储数据,并且可能还赋予初值,而声明仅仅是仅仅是让这个变量被其他文件所知。
在定义声明时,我们在前面加上extern关键词,并且不能够现实的初始化。注意,在声明一个变量时也不要忘了加入类型说明符。
extern int a ;//声明了a
extern int b = 10; // 定义了b
当我们使用 extern 关键词并初始化一个变量时,此时extern就是失效了,此时这个语句就变成了定义。当我们在函数体内初始化声明时,会发生错误。
注意:在程序中,同一变量只能在文件中定义一次,而声明却可以在不同的文件中多次出现。