声明、定义本质的区别:有无内存的分配


1、声明:

    一般来说,身后名是加了 extern 关键字,比如:

 
 
extern int a; // 只是声明

    这个过程,是声明,告诉编译器,这个变量已经在别的地方定义过了,这个只做基本的声明,这个过程并没有为其分配内存。

2、定义:

 
 
int x; // 声明 + 定义

    完成了定义,事实上,定义就包含了声明,编译器会为其分配内存。

3、初始化:

 
 
int x = 10;

    初始化,定义的都以后分配了内存了,更别说是初始化了。

4、一步完成:

 
 
extern int pi = 3.14;

    一般完成了声明,定义,初始化,更当然是分配了内存。

5、本质的区别

    声明、定义、初始化、的本质的区别在于有无分配内存。显然,声明只是告诉了编译器存在这么一个变量或者函数的声明,只是告诉了编译存在这么一个函数而已,这个函数或者变量在其他的位置定义过了,所以在这个过程中没有为其再次分配内存;定义,则编译器会为其变量分配内存空间。初始化,则是完成了,为其分配的内存填指定的赋值而已。

6、理解

    声明理解为:普通的声明,告诉编译器这个变量是在其他的地方创建的对象。

    定义理解为:一个特殊的声明,会为声明的变量进行分配内存。

转载于:https://www.cnblogs.com/qxj511/p/5081924.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值