学习定义与声明

定义 与 声明
《C++Primer》第四版 2.3.5节中这么说到:
1、变量定义:用于为变量分配存储空间,还可为变量指定初始值。程序中,变量有且仅有一个定义。
2、变量声明:用于向程序表明变量的类型和名字。
3、定义也是声明:当定义变量时我们声明了它的类型和名字。
4、extern关键字:通过使用extern关键字声明变量名而不定义它。

我认为声明是向编译器告知我将要使用这个标识符(我有这么一个“房间”),但并未向计算机申请内存空间,就是给这个标识符一个“一个房间号”。(我有一这么套总统套房,但没有说是几层,几号)。
而定义是在说有这么一套房时同时说出房间号。
这是定义与声明的本质:定义时系统会为定义的变量分配空间,而声明时,不会分配空间。

同时在程序中,声明可以有多次。(c中)正如在程序中同时“定义”两个相同名字的全局变量时,编译通过,但初始化时缺失败了,出现错误,显示重新定义多重初始化。说明未初始化时编译器认定第二个“定义”是声明。

int a;//定义
int b=1;//也是定义
extern int c; //这是声明   
extern int d=10;//是定义

声明有广义上定义性声明与引用性声明,即前者就是“定义”。
总结是广义上定义 包含于 声明,但是并非所有的声明都是定义。一般的情况下我们常常这样叙述,把建立空间的声明称之为“定义”,而把不需要建立存储空间的声明称之为“声明”。故一般我们说声明都是狭义上声明。
1、变量在使用前就要被定义或者声明。
2、在一个程序中,变量只能定义一次,却可以声明多次。
3、定义分配存储空间,而声明不会。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值