当前位置首页 > 百科> 正文

变数(计算机名词)

2019-11-30 14:09:30 百科
变数(计算机名词)

变数(计算机名词)

变数来源于数学,是计算机语言中能储存计算结果或能表示值抽象概念。变数可以通过变数名访问。在指令式语言中,变数通常是可变的;但在纯函式式语言(如Haskell)中,变数可能是不可变(immutable)的。在一些语言中,变数可能被明确为是能表示可变状态、具有存储空间的抽象(如在Java和Visual Basic中);但另外一些语言可能使用其它概念(如C的对象)来指称这种抽象,而不严格地定义“变数”的準确外延。

基本介绍

  • 中文名:变数
  • 外文名:Variable
  • 来源于:数学
  • 属于:计算机语言中能储存计算结果
  • 特点:可以通过变数名访问

变数介绍

由于变数让你能够把程式中準备使用的每一段数据都赋给一个简短、易于记忆的名字,因此它们十分有用。变数可以保存程式运行时用户输入的数据(如使用InputBox函式在萤幕上显示一个对话框,然后把用户键入的文本保存到变数中)、特定运算的结果以及要在窗体上显示的一段数据等。简而言之,变数是用于跟蹤几乎所有类型信息的简单工具。
变数在记忆体中的存储变数在记忆体中的存储
变数声明后没有赋值的话 编译器会自动提示并赋予默认值
变数是一种使用方便的占位符,用于引用计算机记忆体地址,该地址可以存储Script运行时可更改的程式信息。例如,可以创建一个名为Click Count的变数来存储用户单击Web页面上某个对象的次数。使用变数并不需要了解变数在计算机记忆体中的地址,只要通过变数名引用变数就可以查看或更改变数的值。在VB Script中只有一个基本数据类型,即Variant,因此所有变数的数据类型都是Variant。
声明变数
声明变数的一种方式是使用Dim语句、Public语句和Private语句在Script中显式声明变数。例如:
Dim Degrees Fahrenheit
声明多个变数时,使用逗号分隔变数。例如:
Dim Top, Bottom, Left, Right
另一种方式是通过直接在Script中使用变数名这一简单方式隐式声明变数。这通常不是一个好习惯,因为这样有时会由于变数名被拼错而导致在运行Script时出现意外的结果。因此,最好使用Option Explicit语句显式声明所有变数,并将其作为Script的第一条语句。

命名规则

首先,我们必须给变数取一个合适的名字,就好像每个人都有自己的名字一样,否则就难以区分了。 在VB6中,变数的命名必须遵循以下规则:
(1)变数名必须以字母或下划线打头,名字中间只能由字母、数字和下划线“_”组成;最后一个字元可以是类型说明符;
(2)变数名的长度不得超过255个字元;
(3)变数名在有效的範围内必须是唯一的。有效的範围就是引用变数可以被程式识别、使用的作用範围——例如一个过程、一个窗体等等。有关引用变数作用範围的内容,将在以后介绍。
(4)变数名不能是VB中的保留字(关键字),也不能是末尾带类型说明符的保留字,但可以把保留字嵌入变数名, 关键字是指VB6语言中的属性、事件、方法、过程、函式等系统内部的标识符。如已经定义的词(if、endif、while、loop等)、函式名(len、format、msgbox等)。像Print、Print$是非法的,而Myprint是合法的。 例如: strName1,intMax_Length,intLesson,strNo3等是合法的变数名,而A&B,all right,3M,_Number等是非法的变数名。
注意:
(1)变数名在VB中是不区分大小写的(如ABC、aBc、abc等都是一样的)。C语言中区分大小写。不同的语言有不同的规则。
(2)定义和使用变数时,通常要把变数名定义为容易使用阅读和能够描述所含数据用处的名称,而不要使用一些难懂的缩写如A或B2等。例如:假定正在为水果铺编一个销售苹果的软体。我们需要两个变数来存储苹果的价格和销量。此时,可以定义两个名为Apple_Price和Apple_Sold的变数。每次运行程式时,用户就这两个变数提供具体值,这样看起来就非常直观。具体方法是:通过用一个或多个单词组成有意义的变数名来使变数意义明确。例如,变数名SalesTaxRate就比Tax或Rate的意义明确得多。
(3)根据需要混合使用大小写字母和数字。一个合理协定是,变数中每个单词的第一个字母大写,例如:DateOfBirth。
(4)另一个合理协定是,每个变数名以两个或三个字元缩写开始,这些字元缩写对应于变数要存储数据的数据类型。例如,使用strName来说明Name变数保存字元串型数据。这种命名方法叫匈牙利命名法
格式 变数类型 + 变数名字
比如刚才说的strname "str" 是"string"的缩写 "Name" 则是变数名字
注意 变数类型都是小写 而且变数名字是开头大写
C# 命名方法
stringstrName
VB 命名方法
DimstrNameasString
虽然无须过多地关注字元缩写的细节,但以后还是需要看一下这方面的约定。在Visual Basic在线上帮助和许多Visual Basic高级编程的书籍中都可以找到这一约定的细节。

存活期

变数存在的时间称为存活期。Script级变数的存活期从被声明的一刻起,直到Script运行结束。对于过程级变数,其存活期仅是该过程运行的时间,该过程结束后,变数随之消失。在执行过程时,局部变数是理想的临时存储空间。可以在不同过程中使用同名的局部变数,这是因为每个局部变数只被声明它的过程识别。

作用域

变数的作用域由声明它的位置决定。如果在过程中声明变数,则只有该过程中的代码可以访问或更改变数值,此时变数具有局部作用域并被称为过程级变数。如果在过程之外声明变数,则该变数可以被Script中所有过程所识别,称为Script级变数,具有Script级作用域。

生存期

是指变数的分配与回收的全过程,

类型

属性变数用户自己建立的变数。
当我们在窗体中设计用户界面时,vb6会自动为产生的对象(包括窗体本身)创建一组变数,即属性变数,并为每个变数设定其预设值。这类变数可供我们直接使用,比如引用它或给它赋新值。
用户也可以创建自己的变数,以便存放程式执行过程中的临时数据或结果数据等等。在程式中,这样的变数是非常需要的。下面就介绍这类变数的创建和使用方法。

声明变数

变数在使用前,必须在代码中进行声明,即创建该变数。
在使用变数之前,大多数语言通常首先需要声明变数。就是说,必须事先告诉编译器在程式中使用了哪些变数,及这些变数的数据类型以及变数的长度。这是因为在编译程式执行代码之前编译器需要知道如何给语句变数开闢存储区,这样可以最佳化程式的执行。
声明变数有两种方式分别是隐式声明、显式声明。
隐式声明:
变数可以不经声明直接使用,此时VB给该变数赋予预设的类型和值。这种方式比较简单方便,在程式代码中可以随时命名并使用变数,但不易检查。
显式声明:
用声明语句创建变数。
强制显式声明变数:
为了避免写错变数名引起的麻烦,用户可以规定,只要遇到一个未经明确声明就当成变数的名字,VB都发出错误警告。方法是----强制显式声明变数。要强制显式声明变数,只须在类模组、窗体模组或标準模组的声明段中加入这条语句:
Option Explicit
这条语句是用来规定在本模组中所有变数必须先声明再使用,即不能通过隐式声明来创建变数。在添加Option Explicit语句后,VB将自动检查程式中是否有未定义的变数,发现后将显示错误信息。
如果要自动插入Option Explicit语句,用户只要在“工具”选单中选取“选项”命令,然后单击“选项”对话框中的“编辑器”选项卡,再选中“要求变数声明”选项
这样VB就会在任何新模组中自动插入Option Explicit语句,但只会在新建立的模组中自动插入。所以对于已经建立的模组,只能用手工方法向现有模组添加Option Explicit语句(只有再重新启动VB,这项功能才有效)。

理变数範围

变数的範围确定了能够知晓该变数存在的那部分代码。在一个过程内部声明变数时,只有过程内部的代码才能访问或改变那个变数的值;它有一个範围,对该过程来说是局部的。但是,有时需要使用具有更大範围的变数,例如这样一个变数,其值对于同一模组内的所有过程都有效,甚至对于整个应用程式的所有过程都有效。Visual Basic 允许在声明变数时指定它的範围。

存储类型

我们在程式中会经常定义一些变数来保存和处理数据。从本质上看,变数代表了一段可操作的记忆体,也可以认为变数是记忆体的符号化表示。当程式中需要使用记忆体时,可以定义某种类型的变数。此时编译器根据变数的数据类型分配一定大小的记忆体空间。程式就可以通过变数名来访问对应的记忆体了。
如果说变数的数据类型决定了对应记忆体的大小,那幺存储类型则影响着对应记忆体的使用方式。所谓使用方式,具体说就是在什幺时间、程式的什幺地方可以使用变数,即变数的生命周期和作用域。
先了解一些基本常识。一、在程式运行时记忆体中有三个区域可以保存变数:静态存储区、栈(stack)和堆(heap)。二、根据变数定义的位置可分为全局变数(定义在函式体外的变数)和局部变数(定义在函式体内的变数,包括形参)。
所有的全局变数和静态局部变数(定义时使用关键字static)都保存在静态存储区,其特点是:在编译时分配记忆体空间并进行初始化。在程式运行期间,变数一直存在,直到程式结束,变数对应的记忆体空间才被释放。
而所有的非静态局部变数(又称为自动变数)保存在栈(stack)中,其特点是:在变数所在的函式或模组被执行时动态创建,函式或模组执行完时,变数对应的记忆体空间被释放。换句话说,函式或模组每被执行一次,局部变数就会重新被分配空间。如果变数定义时没有初始化,那幺变数中的值是随机数。
所有用malloc分配的记忆体(又称为动态记忆体)都在堆(heap)中,其特点是:一般通过指针来访问动态分配的记忆体。即可以通过free来手动释放动态记忆体,也可以在程式结束时由系统自动释放。
以上讨论的是变数的生命周期,下面来看作用域。作用域指的是变数的可见範围,即在变数的生命周期内,程式的哪些部分可以使用该变数。
全局变数的作用域从定义点开始一直到源档案的结束。如果要在定义点之前使用全局变数的话就需要使用关键字extern对作用域进行扩展。全局变数预设是可以被其他档案引用的。如果希望仅限于本档案使用的话,需要在定义时使用关键字static。
对于局部变数来说,无论是静态局部变数还是自动变数,作用域都仅限于定义该变数的函式或模组。
动态记忆体只要没有被释放就可以在程式的任何地方使用,前提是要知道动态记忆体的地址。
注:static加在全局变数前影响的是作用域,加在局部变数前影响的是生命周期。

变数类型

C语言中,变数分为全局变数和局部变数;也可以这样分:自动变数,静态变数.前者是按变数作用範围来分的,而后者是按变数存储方式来分的.
在C语言中,如果按存储占用空间来分,可以是整型变数(代码为int),整型变数包括长整型变数(代码为long int)以及短整型变数(代码为short int),字元型变数(代码为char),浮点型变数(代码float)等.当然还有数组,结构体变数等.但新手需要注意的是,每一种变数类型最终都对应的格式字元.如:%d
变数(计算机名词)
C语言还有一个重要变数:指针变数.它存放的值是一个记忆体地址.C语言中变数名是有大小写之分的,如SUN与sun就是两个不同的变数名。
作业系统变数作业系统变数
另一点,声明变数时,可以不用声明就直接赋值来决定变数类型的语言如(javascript,flash cs3.0以前,等),这类语言变数的声明通常被称为弱类型,而如(c++等)必须先声明,后使用,而且声明时必须确定变数类型,这种就是严格的数据类型.
变数有两种类型:属性变数用户自己建立的变数。

JavaScript

变数

正如代数一样,JavaScript 变数用于保存值或表达式。
可以给变数起一个简短名称,比如 x,或者更有描述性的名称,比如 length
JavaScript 变数也可以保存文本值,比如 carname="Volvo"
变数名称的规则
变数对大小写敏感(yY 是两个不同的变数)
变数必须以字母或下划线开始
注释:由于 JavaScript 对大小写敏感,变数名也对大小写敏感。
实例
在脚本执行的过程中,可以改变变数的值。可以通过其名称来引用一个变数,以此显示或改变它的值。
本例为您展示原理。

声明(创建) JavaScript 变数

在 JavaScript 中创建变数经常被称为“声明”变数。
您可以通过 var 语句来声明 JavaScript 变数:
var x; var carname;
var x; var carname;
在以上声明之后,变数并没有值,不过您可以在声明它们时向变数赋值:
var x = 5; var carname = "Volvo";
var x = 5; var carname = "Volvo";
注释:在为变数赋文本值时,请为该值加引号。

向 JavaScript 变数赋值

通过赋值语句向 JavaScript 变数赋值:
x = 5; carname = "Volvo";
x = 5; carname = "Volvo";
变数名在 = 符号的左边,而需要向变数赋的值在 = 的右侧。
在以上语句执行后,变数 x 中保存的值是 5,而 carname 的值是 Volvo
向未声明的 JavaScript变数赋值
如果您所赋值的变数还未进行过声明,该变数会自动声明。
这些语句:
x = 5; carname = "Volvo";
x = 5; carname = "Volvo";
与这些语句的效果相同:
var x = 5; var carname = "Volvo";
var x = 5; var carname = "Volvo";
重新声明 JavaScript变数
如果您再次声明了 JavaScript 变数,该变数也不会丢失其原始值。
var x = 5; var x;
var x = 5; var x;
在以上语句执行后,变数 x 的值仍然是 5。在重新声明该变数时,x 的值不会被重置或清除。
JavaScript算术
正如代数一样,您可以使用 JavaScript 变数来做算术:
y = x - 5; z = y + 5;
y = x - 5; z = y + 5

php中的变数类型

PHP 中的变数:变数用于存储值,比如数字、文本字元串或数组。
一旦设定了某个变数,我们就可以在脚本中重複地使用它。
PHP 中的所有变数都是以 $ 符号开始的。
在 PHP 中设定变数的正确方法是:
$var_name = value;PHP 的入门者会忘记在变数的前面的 $ 符号。如果那样做的话,变数将是无效的。
我们创建一个存有字元串的变数,和一个存有数值的变数:
<?php$txt = "Hello World!";$number = 16;?>
不必向 PHP 声明该变数的数据类型。
根据变数被设定的方式,PHP 会自动地把变数转换为正确的数据类型。
在强类型的程式语言中,您必须在使用前声明变数的类型和名称。
在 PHP 中,变数会在使用时被自动声明。
php 中的变数用一个美元符号后面跟变数名来表示。变数名是区分大小写的。
变数名与 php 中其它的标籤一样遵循相同的规则。一个有效的变数名由字母或者下划线开头,后面跟上任意数量的字母,数字,或者下划线。按照正常的正则表达式,它将被表述为:'[a-zA-Z_/x7f-/xff][a-zA-Z0-9_/x7f-/xff]*'。
注: 在此所说的字母是 a-z,A-Z,以及 ASCII 字元从 127 到 255(0x7f-0xff)。
<?php$var = 'Bob';$Var = 'Joe';echo "$var, $Var"; // 输出 "Bob, Joe"$4site = 'not yet'; // 非法变更名;以数字开头$_4site = 'not yet'; // 合法变数名;以下划线开头$i站点is = 'mansikka'; // 合法变数名;可以用中文?>php 3 中,变数总是传值赋值。那也就是说,当将一个表达式的值赋予一个变数时,整个原始表达式的值被赋值到目标变数。这意味着,例如,当一个变数的值赋予另外一个变数时,改变其中一个变数的值,将不会影响到另外一个变数。有关这种类型的赋值操作,请参阅表达式一章。
php 4 提供了另外一种方式给变数赋值:引用赋值。这意味着新的变数简单的引用(换言之,“成为其别名” 或者 “指向”)了原始变数。改动新的变数将影响到原始变数,反之亦然。这同样意味着其中没有执行複製操作;因而,这种赋值操作更加快速。不过只有在密集的循环中或者对很大的数组或对象赋值时才有可能注意到速度的提升。
使用引用赋值,简单地将一个 & 符号加到将要赋值的变数前(源变数)。例如,下列代码片断将输出“My name is Bob”两次:
<?php$foo = 'Bob'; // Assign the value 'Bob' to $foo$bar = &$foo; // Reference $foo via $bar.$bar = "My name is $bar"; // Alter $bar...echo $bar;echo $foo; // $foo is altered too.?>
有一点重要事项必须指出,那就是只有有名字的变数才可以引用赋值。
<?php$foo = 25;$bar = &$foo; // This is a valid assignment.$bar = &(24 * 7); // Invalid; references an unnamed expression.function test(){ return 25;}$bar = &test(); // Invalid.?>

变数的命名规则:

变数名必须以字母或下划线 "_" 开头。
变数名只能包含字母数字字元以及下划线。
变数名不能包含空格。如果变数名由多个单词组成,那幺应该使用下划线进行分隔(比如 $my_string),或者以大写字母开头(比如 $myString)。
声明:此文信息来源于网络,登载此文只为提供信息参考,并不用于任何商业目的。如有侵权,请及时联系我们:baisebaisebaise@yeah.net