C/C++声明、定义、初始化、赋值

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接: https://blog.csdn.net/boyaaboy/article/details/102676656

一、声明 - declaration

声明:告诉编译器某个东西(变量或函数)的名称和类型,但略去细节。
通俗的讲就是:告诉编译器我这个变量或函数是有的,我要用,只是现在不定义,你先不要给我报错,定义我后面补上。
比如:

extern int x;						//对象object声明
std::size_t numDigits(int number); 	//function声明
class widget;						//class声明
template<typename T>
class GraphNode;					//模板template声明

二、定义 - definition

1.变量的定义:变量的定义用于为变量分配存储空间,还可以为变量指定初始值。在一个程序中,变量有且仅有一个定义。

声明和定义两者联系与区别:

(1)定义也是声明(定义是一种特殊的声明),因为当定义变量时我们也向程序表明了它的类型和名字;

(2)但声明不是定义,可以通过使用extern关键字声明变量而不定义它。不定义变量的声明包括对象名、对象类型和对象类型前的关键字extern;
(3)程序中变量可以声明多次,但只能定义一次。
(4)变量声明:(1)不分配空间 变量定义:(1)分配空间 (2)注意:定义是一种特殊的声明.
总结来说:
声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器“认识”该标识符,但声明不一定引起内存的分配。而定义变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对相应的内存单元的命名。

三、初始化 - initialization

初始化是给对象赋予初值的过程
(1)变量初始化:在定义的同时赋值;(注意,定义之后,再去赋值不叫初始化)
(2)对于类的对象:初始化由构造函数执行。所谓的default构造函数是一个可被调用而不带任何实际参数者,这样的构造函数要不没有参数,要不就是每个参数都有缺省值。

四、赋值

大家都懂的。

猜你喜欢

转载自blog.csdn.net/boyaaboy/article/details/102676656