‘常量’概念在計算機技術領域的錯誤解釋:
另一層含義指它們的編碼方法是不變的(但是嚴格來說‘人為規定的某一種方法也可以因地制宜而人為改變,所以其本身數值大小‘不是‘常量’的內涵’),比如
字元'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’中的常量,分為‘文字常量’和‘
符號常量’。
文字常量又分為 ‘
字元串常量’ 和 ‘數值常量’。