版权归原作者所有,如有侵权,请联系我们

[科普中国]-未定义变量

科学百科
原创
科学百科为用户提供权威科普内容,打造知识科普阵地
收藏

变量定义

在计算机编程中,变量或标量是与相关联的符号名称(标识符)配对的存储位置,其包含称为值的一些已知或未知数量的信息。变量名称是引用存储值的通常方法;这种名称和内容的分离允许独立于其所代表的确切信息使用该名称。计算机源代码中的标识符可以在运行时绑定到一个值,并且变量的值因此可能在程序执行过程中发生变化。

编程中的变量可能不直接对应于数学变量的概念。计算变量的值不一定是数学中等式或公式的一部分。在计算中,可以在重复过程中使用变量 ,即在一个位置分配值,在其他位置使用,然后重新分配新值,并以相同的方式再次使用。计算机编程中的变量经常被给予长名称以使其相对描述其使用,而数学中的变量通常具有简洁的,一个或两个字符的名称来简化转录和操纵。

可变存储位置可以由几个不同的标识符引用,称为混叠的情况。使用其中一个标识符为变量分配值将更改可以通过其他标识符访问的值。

编译器必须用数据的实际位置替换变量的符号名称。当变量的名称、类型和位置通常保持固定时,存储在该位置的数据可能在程序执行期间被更改。

变量的动作在命令式编程语言中,变量的值通常可以被随时访问或更改。 然而,在纯粹的功能和逻辑语言中,由于引用透明度的要求,变量在整个生命周期中都被绑定到表达式并保持一个单一的值。 在命令语言中,和常数表现出相同的行为,通常与正常变量形成对比。

根据编程语言的类型系统,变量只能存储特定的数据类型(例如整数或字符串)。 或者,数据类型可以仅与当前值相关联,允许单个变量存储由编程语言支持的任何东西

引用变量的标识符可以使用引用变量的标识符来访问变量,以便读取该值,或更改该值,或编辑变量的属性,例如访问权限,锁定,信号量等。

例如,变量可能被标识符“total_count”引用,变量可以包含数字1956.如果同一变量也被标识符“x”引用,并且如果使用该标识符“x”,则值 该变量更改为2009年,然后使用标识符“total_count”读取值将产生2009年的结果,而不是1956年。

如果一个变量只被单个标识符引用,该标识符可以简单地称为变量的名称。 否则,我们可以说出变量的名字之一。 例如,在前面的例子中,“total_count”是所讨论的变量的名称,“x”是同一变量的另一个名称。

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

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

未定义变量未定义变量,顾名思义,未被定义的变量(Undefined variable)。在使用计算机程序语言编程时,由于使用了一个未被定义的变量,导致编译器报错。

错误提示C/C++若在程序中访问一个未被定义的变量,如 a ,则会出现如下错误提示:

error::'a' undeclared

Matlab若在程序中访问一个未被初始化的变量,如 a ,则会出现如下错误提示:

未定义函数或变量 'a'。

Python若在程序中访问一个未被定义的变量,如 a ,则会出现如下错误提示:

NameError::name 'a' is not defined