顾名思义,字面量代表从字面即可看到具体值的变量。100, 'a', "hello", 1.25都是字面量,与标识符a, sum相反,标识符变量字面看不到它的值,是指代关系。字面量英文名literal.
字面量使用广泛
几乎所有编程语言都支持字面量,包括但不止整型、字符型、浮点数和字符串,有的编程语言还支持布尔类型字面量,大部分支持数组、结构体和类对象的编程语言也支持字面量。字面量已经表达了数值,只能当做右值。
字面量默认类型
一般而言,整数默认是int,浮点数默认是双精度浮点数。如果有后缀,按后缀指示的含义,比如后缀u代表无符号,C#后缀m代表decimal类型。
- C/ObjC/C++ 整数默认是int, 浮点数默认是double.
- 仓颉 整数默认是Int64, 浮点数默认是Float64.
- C# 整数默认是int, 浮点数默认是double.
超过默认类型范围的字面量
- C/ObjC/C++ 的处理相对暴力,超过就超过,按溢出的数值来算。
- C# 会提示字面量超出范围,并报错希望程序员换成更大类型。
例如2147483648超过int范围,编译器提示:无法将类型“uint”隐式转换为“int”