C++中定义与声明

来源:互联网 发布:编程语言执行效率 编辑:程序博客网 时间:2024/04/30 02:16

定义一定是声明,声明不一定是定义:

比如int a;

这是一个定义,同时也是一个声明,声明a是一个整型变量,同时为a分配内存单元。

声明和定义的本质区别在于是否为变量分配了内存空间,就像上面的例子

定义了一个变量a,因为为a分配了内存空间;

同时也是对a的声明,声明a是一个int变量;


举个是声明不是定义的例子:

extern int a;

这就是一个声明,而不是定义,声明a在文件的其他地方,语句不会给a分配内存空间;

但如果

extern int a=1;

这就是一个定义,不仅仅是一个声明,因为为a分配了内存空间,并且进行了复制初始化。