常量 编辑

常量常量

“常量”的广义概念是:“不变化的量”(例如:在计算机程序运行时,不会被程序修改的量;数学函数中的某一个量,例如每一个具体的圆的半径、直径数值;物理学中的靠近地面的重力加速度;真空中的光速数值;不同的微粒的各自的质量)换言之,常量,在计算机技术方面虽然是为了硬件、软件、编程语言服务,但是它并不是专门为硬件、软件、编程语言而引入的概念。常量可区分为不同的类型,如: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’中的常量,分为‘文字常量’和‘符号常量’。

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

下一篇 软件开发工具包

上一篇 Web Service