常量

更新时间:2023-11-28 14:42

“常量”的广义概念是:“不变化的量”(例如:在计算机程序运行时,不会被程序修改的量;数学函数中的某一个量,例如每一个具体的半径直径数值;物理学中的靠近地面的重力加速度真空中的光速数值;不同的微粒的各自的质量)换言之,常量,在计算机技术方面虽然是为了硬件、软件编程语言服务,但是它并不是专门为硬件、软件、编程语言而引入的概念。常量可区分为不同的类型,如:25、0为整型常量,6.8为实型常量,‘a’、‘b’为字符常量。常量一般从其字面形式即可判断。这种常量称为字面常量或直接常量。

误区

“常量”在计算机领域的另一层含义是它们的编码方法是不变的(但是严格来说‘人为规定的某一种方法也可以因地制宜而人为改变,所以其本身数值大小‘不是‘常量’的内涵’),比如字符'A'无论在硬件、软件还是各种编程语言中,它的信息编码即为 ‘ 0x41’。

在除了‘C/C++’的一些高级程序语言中,‘常量’可以被称作,“在一个信息变化过程中,始终不发生改变的量”,其可以是不随着时间变化的某些量的固定信息;也可以表示为某一数值的字符(或字符串),常被用来标识、测量和比较两者的差异。

但在 ‘C/C++语言中’,‘常量’如果还用‘运行过程中不变的量’来描述,就显得不太准确了,甚至是在具体使用时,这就是一个错误的概念。在 ‘C/C++’中,定义‘指针常量’时,根据‘const ’的位置的不同,可以定义出几个不同的形式,虽然其看起来‘符合常量的概念’,但是在实际运行中,其值或地址值是会发生变化的。所以本质还不是‘常量概念’

案例

下面举几个C语言的例子做参考:

int *p; /* 定义的是变量 */

int const *p; /* 定义的就是常量 */

int * const p; /* 定义的还是常量 */

在上面定义的两个‘常量’的句子中,都符合常量的定义,但是其值是有变化的。所以其本质不是‘常量’

前者内涵是表示,定义的“指针常量”所指向的整数是不变的,在初始化时,指针变量假如指向地址为‘1000’的变量a,这个a的值是固定不变的,但是指针常量p的值,(即地址值)可以向上、向下移动而指向不同的变量。这就是与常量概念相违背了。

后者是表示指针常量的地址值不变的,但是其所指向的整数是可以变化的,同样与上述的定义相违背。

vb中的常量问题:

在某些特定的情况下,虽然声明了一个‘变量’,但人们却不希望这个数值被按照‘变量’定义而修改,这种人为的可以被修改却永不会去修改的‘量’,也可以称为‘常量’。其的特点是‘永远不被人为改变’,当然与‘光速不变’表面上一样却是人为的可以被改变的东西。逻辑学中,概念必须避免混淆。对于‘vb中的常量’应该另外定义(例如修改为‘vb中的伪常量’。“伪常量”只是标记,表明可人为改变,但方法本身并无优劣之分)

简单地说,就是在某一个程序运行时,其中某一个因素的数值值要认为固定起来的量。‘Visual Basic’中的常量,分为‘文字常量’和‘符号常量’。

文字常量又分为 ‘字符串常量’ 和 ‘数值常量’。

免责声明
隐私政策
用户协议
目录 22
0{{catalogNumber[index]}}. {{item.title}}
{{item.title}}