变量的声明、定义、赋值和初始化有什么区别

小编 639

变量的声明、定义、赋值和初始化有作用上的区别:声明用于向程序表明变量的类型和名字;定义主要用于为变量分配存储空间;赋值是把对象的当前值擦除,再给一个新值替代;初始化是在创建变量时赋予一个初始值。

1.声明、定义、赋值和初始化的作用

(1)声明的作用:向程序表明变量的类型和名字。一个文件如果想使用别处定义的名字,则必须包含对那个名字的声明。如果在当前编译语句的前面中没有找到相应的变量或者函数,也会在当前文件的后面或者其它文件中定义。

(2)定义的作用:主要用于为变量分配存储空间,同时负责创建与名字相关联的实体。当然,定义也会规定变量的类型和名字,还申请存储空间,也可能为变量附一个初始值。

(3)赋值的作用:把对象的当前值擦除,而已一个新值替代。

(4)初始化的作用:创建变量时赋予一个初始值,即从无到有。

2.声明和定义两者的联系与区别

声明和定义存在一定联系,即定义是一种特殊的声明,因为当定义变量时我们也向程序表明了它的类型和名字。但声明不是定义,可以通过使用extern关键字声明变量而不定义它。不定义变量的声明包括对象名、对象类型和对象类型前的关键字extern。

声明和变量又存在一些明显区别:首先,程序中变量可以声明多次,但只能定义一次;其次,变量声明不分配空间,而变量定义分配空间。

总结来说,声明一个变量只是将变量名标识符的有关信息告诉编译器,使编译器“认识”该标识符,但声明不一定引起内存的分配。而定义变量意味着给变量分配内存空间,用于存放对应类型的数据,变量名就是对相应的内存单元的命名。

延伸阅读

编程中的变量是什么

变量是编程语言中最基本的术语,它本来源于数学,是计算机语言中能储存计算结果或能表示值的抽象概念。从名称概念上来看,变量指的是在程序的运行过程可以改变的量,而它也是我们写的程序在运行时临时存储数据的地方。

变量可分为全局变量和局部变量,它们之间的区别是:当你声明了一个全局变量之后,这个全局变量无论是在函数外还是函数内都可以访问到,而局部变量只能在函数的内部声明,也只能在定义它的函数内部访问。除此之外,这两者变量的销毁时机不同,局部变量是当定义这个局部变量的函数执行完成时,这个局部变量就会被销毁,而全局变量是当整个页面的脚步执行完成之后这些全局变量才会被销毁。

变量可以保存不同的变量类型,比如整型、布尔型、对象、数组等等,每一个变量在内存中对应着一个内存地址,但是如果一个变量保存一个原始数据类型(整型、布尔型、字符串)则该变量的值是保存在栈内存中,而相对于那些较复杂的数据类型(数组、对象)则是在栈中只存储了一个固定长度的地址,这个地址指向堆内存中的值。

回复

我来回复
  • 暂无回复内容

注册PingCode 在线客服
站长微信
站长微信
电话联系

400-800-1024

工作日9:30-21:00在线

分享本页
返回顶部