什么是变量?(a variable?)

变量是计算机内存中存储某些数据的位置的名称。...

变量是计算机内存中存储某些数据的位置的名称。

Man's face half revealed from behind a computer screen in office of computers

想象一下一个非常大的仓库,里面有很多储藏间、桌子、架子、特别的房间等等。这些都是你可以储藏东西的地方。假设仓库里有一箱啤酒。它具体在哪里?

我们不会说它距离西墙31英尺2英寸,距离北墙27英尺8英寸。在编程方面,我们也不会说我今年支付的工资总额存储在内存中从123476542732开始的四个字节中。

pc中的数据

每次我们的程序运行时,计算机将把变量放在不同的位置。然而,我们的程序确切地知道数据的位置。我们通过创建一个变量来引用它,然后让编译器处理所有关于它实际所在位置的混乱细节。对我们来说,更重要的是知道我们将在该位置存储什么类型的数据。

在我们的仓库中,我们的板条箱可能位于饮料区货架3的第5部分。在PC中,程序将准确地知道其变量的位置。

变量是临时的

只要需要它们,它们就存在,然后被处理掉。另一个类比是,变量就像计算器中的数字。一旦按下清除或关闭电源按钮,显示号码就会丢失。

变量有多大

需要多大就多大。变量的最小值为一位,最大值为数百万字节。当前的处理器一次处理4或8字节的数据块(32位和64位CPU),因此变量越大,读取或写入它所需的时间就越长。变量的大小取决于其类型。

什么是变量类型(a variable type)?

在现代编程语言中,变量被声明为一种类型。

除了数字,CPU不会对内存中的数据进行任何区分。它将其视为字节的集合。现代CPU(除了移动电话中的CPU)通常可以在硬件中处理整数和浮点运算。编译器必须为每种类型生成不同的机器代码指令,因此了解变量的类型有助于生成最佳代码。

变量可以保存哪些类型的数据?

基本类型是这四种。

  • 整数(有符号和无符号)大小为1、2、4或8字节。通常称为int。
  • 最大为8字节的浮点数。
  • 字节。它们以4s或8s(32位或64位)的形式组织,并从CPU的寄存器中读取。
  • 文本字符串,大小可达数十亿字节。CPU有专门的指令来搜索内存中的大块字节。这对于文本操作非常方便。

还有一种通用变量类型,常用于脚本语言。

  • 变体-可以保存任何类型,但使用速度较慢。

数据类型示例

  • 各种类型的阵列——单维的像橱柜中的抽屉,二维的像邮局的分拣箱,或者三维的像一堆啤酒箱。可以有任意数量的维度,直到编译器的限制。
  • 是整数的受限子集的枚举。请阅读什么是枚举。
  • 结构是一个复合变量,其中多个变量集中在一个大变量中。
  • 流提供了一种管理文件的方法。它们是字符串的一种形式。
  • 对象,类似于结构,但具有更复杂的数据处理。

变量存储在哪里?

在内存中,但使用方式不同,具体取决于它们的使用方式。

  • 全球地。程序的所有部分都可以访问和更改值。这就是Basic和Fortran等较老的语言用来处理数据的方式,这被认为不是一件好事。现代语言倾向于阻止全局存储,尽管它仍然是可能的。
  • 在堆上。这是所使用的主要区域的名称。在C和C++中,通过指针变量访问这个。
  • 在堆栈上。堆栈是一块内存,用于存储传递到函数中的参数和函数本地存在的变量。

结论

变量对于过程编程至关重要,但重要的是不要过于关注底层实现,除非您正在进行系统编程或编写必须在少量RAM中运行的应用程序。

我们关于变量的规则:

  1. 除非内存紧张或数组较大,否则请坚持使用整数而不是字节(8位)或短整数(16位)。特别是在32位CPU上,访问少于32位的CPU会有额外的延迟损失。
  2. 除非需要精度,否则请使用浮点而不是双精度。
  3. 除非真的有必要,否则避免使用变体。他们速度较慢。

 

  • 发表于 2021-10-09 00:16
  • 阅读 ( 229 )
  • 分类:编程

你可能感兴趣的文章

变量(variables)和java中的数据字面值(data literals in java)的区别

...变量与数据文本的表格形式 6. 摘要 什么是java中的变量(variables in java)? 变量是在内存中存储值的地方。每个内存位置都可以存储特定类型的数据。Java语言支持八种原始数据类型。它们是byte、short、int、long、boolean、float、double...

  • 发布于 2020-10-19 08:52
  • 阅读 ( 257 )

标识符(identifier)和变量(variable)的区别

...性。有意义的标识符也使程序易于理解。 什么是变量(a variable)? 在编程中,需要存储数据。对存储的数据进行计算。这些数据应该存储在内存位置。变量是用来保存数据的容器或存储区域。为变量指定一个唯一的名称或标识符...

  • 发布于 2020-10-19 14:52
  • 阅读 ( 913 )

班(class)和实例变量(instance variables)的区别

...类与实例变量以表格形式显示 6. 摘要 什么是类变量(class variables)? 当只有一个变量副本与类的所有实例共享时,这些变量称为类变量。类变量是在任何方法之外的类中声明的变量。这些变量包含关键字静电。这些变量与类关联...

  • 发布于 2020-10-19 16:54
  • 阅读 ( 299 )

作用域如何影响powershell脚本

...。以下命令将显示哪些变量和别名具有AllScope属性: Get-Variable | Where-Object {$_.Opti*** -match 'AllScope'}
 Get-Alias | Where-Object {$_.Opti*** -match 'AllScope') 作用域 在我们第一次了解作用域时,我们将从PowerShell会话开始,其中变量$MyVar被...

  • 发布于 2021-04-11 03:54
  • 阅读 ( 250 )

如何让你的android手机告诉你在哪里丢的

...。这是高度基于一个任务的维基。 Emailer,步骤1–5: 1Variables–>变量集:%EMAIL\u USER to“EMAIL\u USER\u name”–此脚本设计用于Gmail,因此它可以是您自己的Gmail帐户,也可以是推荐的安卓。你姓什么@gmail.com”. 2Variables–>变量...

  • 发布于 2021-04-12 19:02
  • 阅读 ( 162 )

如何在windows中使用全局系统环境变量

...and prompt or batch scripts is probably well aware of built in environment variables Windows offers (i.e. Path, WinDir, ProgramFiles, UserProfile, etc.). If you find yourself using a particular value over and over, wouldn’t it be great if you had your own variable which you can use the same way as...

  • 发布于 2021-04-13 04:31
  • 阅读 ( 168 )

因变量(dependent variables)和自变量(independent variables)的区别

因变量与自变量 说到数学,有那么多的术语和公式。有些人觉得很有趣,而有些人觉得很难理解。但是数学是生活的一部分;没有它,科学永远不会成为事实。因为数学对一切都有解释;因为它,生活似乎更容易。这就是为什...

  • 发布于 2021-06-23 12:20
  • 阅读 ( 1329 )

相关性(correlation)和回归(regression)的区别

...(correlation)? In statistics, we say there is a correlation between two variables if the two variables are related. If the relati***hip between the variables is a linear one, we can express the degree to which they are related using a number called Pearson’s correlation coefficient  .  takes...

  • 发布于 2021-06-27 11:05
  • 阅读 ( 904 )

常数(constant)和c语言中的变量(variable in c programming)的区别

...。它们的值分别为0、1、2、3等。 什么是c语言中的变量(variable in c programming)? 变量是保存数据的容器。它是标识存储区域的名称。每个变量都有一个唯一的名称来标识它。变量名可以有大小写字母、数字和下划线。为变量使用...

  • 发布于 2021-06-30 21:33
  • 阅读 ( 616 )

实例变量(instance variable)和局部变量(local variable)的区别

...象、方法、实例变量、局部变量 什么是实例变量(instance variable)? 实例变量是在类中声明的变量,但在方法之外。这些变量表示整个类的对象状态。该类的任何对象都有自己的实例变量副本。因此,在另一个对象的实例变量中...

  • 发布于 2021-07-01 22:24
  • 阅读 ( 1128 )
fty18229
fty18229

0 篇文章

相关推荐