在计算机科学中,字面量(literal)是用于表达源代码中一个固定值的表示法(notation)。几乎所有计算机编程语言都具有对基本值的字面量表示,诸如:整数、浮点数以及字符串;而有很多也对布尔类型和字符类型的值也支持字面量表示;还有一些甚至对枚举类型的元素以及像数组、记录和对象等复合类型的值也支持字面量表示法。
具体可参考C语言复合字面量:https://gcc.gnu.org/onlinedocs/gcc/Compound-Literals.html
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
字面常量(literal constant)
所谓字面,就是我们在程序中直接以值的行式来操作、表现(可以对照变量);
所谓常量,是指这些值不能再被改变了。
字面常量的种类:
(1)整形
整形数值 默认是int型,例如:22,33
如果要表示一个long型,则加 l、L后缀。例如:22L、33L
(2)浮点型
浮点数默认是双精度dobule型的。例如:33.3
如果要表示单精度浮点型,加f、F后缀。例如:33.3F
(3)字符串型
包含在双引号''中的字符序列,是字符串。例如:“hello,world”
(4)字符型
用单引号''包含,或者用/转义的字符,是字符型。例如:/n、'a'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
附注:
谈literal译名之选择
literal这个词很讨厌,现有的译法众多,但都问题多多,而且没有一种占据绝对优势。如文字量、直接量、常量、常值、字面量、字面值、实字等等,也有直接译作“文本”,或者保留英文不译,或者通过采取基本等价的意译来规避的。
对于译名我有一个观点,若是一个术语有多个译名,并长期无法有一个译名占据优势,其实就暗示这些译名很可能都存在问题。literal不幸也是如此。
首先literal不是constant
具体可参考C语言复合字面量:https://gcc.gnu.org/onlinedocs/gcc/Compound-Literals.html
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
字面常量(literal constant)
所谓字面,就是我们在程序中直接以值的行式来操作、表现(可以对照变量);
所谓常量,是指这些值不能再被改变了。
字面常量的种类:
(1)整形
整形数值 默认是int型,例如:22,33
如果要表示一个long型,则加 l、L后缀。例如:22L、33L
(2)浮点型
浮点数默认是双精度dobule型的。例如:33.3
如果要表示单精度浮点型,加f、F后缀。例如:33.3F
(3)字符串型
包含在双引号''中的字符序列,是字符串。例如:“hello,world”
(4)字符型
用单引号''包含,或者用/转义的字符,是字符型。例如:/n、'a'
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
附注:
谈literal译名之选择
literal这个词很讨厌,现有的译法众多,但都问题多多,而且没有一种占据绝对优势。如文字量、直接量、常量、常值、字面量、字面值、实字等等,也有直接译作“文本”,或者保留英文不译,或者通过采取基本等价的意译来规避的。
对于译名我有一个观点,若是一个术语有多个译名,并长期无法有一个译名占据优势,其实就暗示这些译名很可能都存在问题。literal不幸也是如此。
首先literal不是constant
