变量的基本概念
Posted fire666
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了变量的基本概念相关的知识,希望对你有一定的参考价值。
忽然很困惑为什么变量要初始化,查阅了一些资料,整合记录下。
+++++++++++++++++++++++++++++++++++++++++++++++++++++++++
一、变量的定义
变量定义就是告诉编译器在何处创建变量的存储,以及如何创建变量的存储。
变量定义指定一个数据类型,并包含了该类型的一个或多个变量的列表。
变量其实就是一块内存空间的名称。
简要地说,计算机拥有可供程序使用的随机存取存储器(RAM),当一个变量被定义时,一部分内存就会被预留给这个变量。
内存的最小单位是二进制数字(binary digit,bit,比特),0或者1。你可以把bit想象成传统的电灯开关——要么是关的(0),要么是开的(1),不存在两者之间的状态。
如果你要查看一个随机的内存片段,你可能看到…011010100101010…或者它们的组合。内存按照称为“地址”的连续单元进行组织,就像可以通过门牌号找到一条街上的某户人家,内存地址使我们能够找到和访问一块特定内存的内容。
但在现代计算机中,并没有给每一个bit都分配地址,最小的可寻址内存单元称为字节(byte),包含8个bit。
二、变量的声明
变量声明向编译器保证变量以给定的类型和名称存在,这样编译器在不需要知道变量完整细节的情况下也能继续进一步的编译。
变量声明只在编译时有它的意义,在程序连接时编译器需要实际的变量定义。
三、变量的初始化
定义变量后,它的值不确定,除非你赋初始值。
四、区别
1)变量的定义和声明的区别
声明是仅仅告诉编译器,有个某类型的变量会被使用,但是编译器并不会为它分配任何内存。而定义就是分配了内存。
2)初始化和赋值
赋值操作是在两个已经存在的对象间进行的,而初始化是要创建一个新的对象,并且其初值来源于另一个已存在的对象。编译器会区别这两种情况,赋值的时候调用重载的赋值运算符,初始化的时候调用拷贝构造函数。
参考资料:
① https://wenku.baidu.com/view/17d251c7aa00b52acfc7ca1b.html 变量的定义与声明
② https://www.cnblogs.com/GavinDai/archive/2011/10/24/2222735.html 变量和定义的区别
以上是关于变量的基本概念的主要内容,如果未能解决你的问题,请参考以下文章