C++学习基本语言-字面值常量

字面值常量:也称字面值,是像43这样的值,不能修改,每个字面值都有对应的类型,例如 0 是 int 型,3.14159 是 double型。只有内置类型的字面值,没有类类型的字面值。

字面值整数常量

字面值整数常量有三种表示形式:十进制,八进制,十六进制,当然最终还是以二进制表示。

字面值整数常量的类型默认是int 或 long。其精度取决于字面值,其值适合 int 就是 int 类型, 比 int 大的值就是 long 类型。

可通过加后缀强制将字面值整数常量转换为 long 、unsigned 、unsigned long 类型。

U 或 u 定义 unsigned 类型。L 或 l 定义 long 类型(不推荐使用 l)。U L组合使用表示unsigned long 类型。


浮点字面值:

可以用十进制或科学计数法表示浮点字面值常量。

使用科学计数法时,指数用 E 或者 e 表示。默认的浮点字面值常量为 double 类型。在数值的后面加上 F 或 f 表示单精度。同样加上 L 或者 l 表示扩展精度(再次提醒,不提倡使用小写字母 l)。下面每一组字面值表示相同的值:

     3.14159F            .001f          12.345L            0.
     3.14159E0f          1E-3F          1.2345E1L          0e0
字符串字面值的连接:

字符串分为普通字符串和宽字符串(例如:L"abc"),普通字符串连接可以这样使用:

std::cout << "abc" "def" <<endl;

输出结果为abcdef

但是普通字符串和宽字符串不能这样连接,因为它们属于不同的类型,连接不同的类型其结果是未定义的。程序运行不能依赖于未定义的,即使能够正常运行,那也是错的,因为可能是巧合,不同的时间或者不同的编译器运行的结果可能都不同。


下列哪些(如果有)是非法的?
      (a) "Who goes with F\145rgus?\012"
      (b) 3.14e1L          (c) "two" L"some"
      (d) 1024f            (e) 3.14UL
      (f) "multiple line

comment"

正确的写法是:

(c)"two" "some"  (说明L"two" L"some" 也是错误的)

(d)1024.f

  (e)  3.14f或者3.14L

(f)"multiple line\

comment"

如有错误之处,欢迎指出,谢谢。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值