c++中的多字符常量

from: http://bbs.chinaunix.net/thread-4090169-1-1.html

使用单引号是在C中是“Character constants”在C++中是"Character literals",使用双引号是无论C还是C++都是“String literals”,前者通常视为单个字符,后者视为字符串,更确切的说前者只能“映射为一个值”;在C中是int类型的值,在C++中如果是一个字符那么映射到char如果是多个字符那么映射到int,无论C还是C++在Character constants多于一个时具体能映射多少个字符并且映射到具体什么样的值都是依速于程序执行环境和编译器的,标准对此的规定都是明确说由实现定义。而“String literals”视为一个值的集合,使用上可以认为是个数组,理论上可以视为“聚合对象”。 下面示例代码被认为multi-character character constant最有意义的使用方式了。

  1. enum
  2. {
  3.         kActionForward        = 'frwd',
  4.         kActionBackward        = 'bkwd',
  5.         kActionLeft        = 'left',
  6.         kActionRight        = 'rght',
  7.         kActionZap        = 'zap!'
  8. };

#include <iostream>


int main() {

  int a  = 'a';

  int ab = 'ab';


  std::cout << "a: " << a << std::endl;

  std::cout << "ab: " << ab << std::endl;


  return 0;

}

输出为:

a: 97

ab: 24930


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值