转自:http://c.biancheng.net/cpp/html/1069.html

Unicode或者宽字符都没有改变char数据型态在C中的含义。char继续表示1个字节的储存空间,sizeof (char)继续返回1。理论上,C中1个字节可比8位长,但对我们大多数人来说,1个字节(也就是1个char)是8位宽。

C中的宽字符基于wchar_t数据型态,它在几个表头文件包括WCHAR.H中都有定义,像这样:

typedef unsigned short wchar_t ;

因此,wchar_t数据型态与无符号短整数型态相同,都是16位宽。

要定义包含一个宽字符的变量,可使用下面的语句:

wchar_t c = 'A' ;

变量c是一个双字节值0x0041,是Unicode表示的字母A。(然而,因为Intel微处理器从最小的字节开始储存多字节数值,该字节实际上是以0x41、0x00的顺序保存在内存中。如果检查Unicode文字的计算机储存应注意这一点。)

您还可定义指向宽字符串的指针:

wchar_t * p = L"Hello!" ;

注意紧接在第一个引号前面的大写字母L(代表「long」)。这将告诉编译器该字符串按宽字符保存-即每个字符占用2个字节。通常,指针变量p要占用4个字节,而字符串变量需要14个字节-每个字符需要2个字节,末尾的0还需要2个字节。

同样,您还可以用下面的语句定义宽字符数组:

static wchar_t a[] = L"Hello!" ;

该字符串也需要14个字节的储存空间,sizeof (a) 将返回14。索引数组a可得到单独的字符。a[1] 的值是宽字符「e」,或者0x0065。

虽然看上去更像一个印刷符号,但第一个引号前面的L非常重要,并且在两个符号之间必须没有空格。只有带有L,编译器才知道您需要将字符串存为每个字符2字节。稍后,当我们看到使用宽字符串而不是变量定义时,您还会遇到第一个引号前面的L。幸运的是,如果忘记了包含L,C编译器通常会给提出警告或错误信息。

您还可在单个字符文字前面使用L前缀,来表示它们应解释为宽字符。如下所示:

wchar_t c = L'A' ;

但通常这是不必要的,C编译器会对该字符进行扩充,使它成为宽字符。

转载于:https://www.cnblogs.com/iluzhiyong/p/4378147.html

C语言 字符串前加L的意义 如:L“A”相关推荐

  1. c语言字母意义,C语言 字符串前加L的意义 如:L“A”

    转自:http://c.biancheng.net/cpp/html/1069.html Unicode或者宽字符都没有改变char数据型态在C中的含义.char继续表示1个字节的储存空间,sizeo ...

  2. c语言字符串前加l,【C】 30_C语言中的字符串

    字符串的概念 字符串是有序字符的集合 字符串是程序中的基本元素之一 C 语言中没有字符串的概念 C 语言中通过特殊的字符数组模拟字符串 C 语言中的字符串是以 '\0' 结尾的字符数组 字符串与字符数 ...

  3. python字符串前加r、f、u、l 的区别

    f-strings 是指以 f 或 F 开头的字符串,其中以 {} 包含的表达式会进行值替换.(目前支持python3.6版本) 下面看下 f-strings 的使用方法 基本使用(作用:替换值) & ...

  4. python 防止转义_python字符串前加r、f、u、l 的区别

    f-strings 是指以f或F 开头的字符串,其中以 {}包含的表达式会进行值替换.(目前支持python3.6版本) 下面看下f-strings的使用方法 基本使用(作用:替换值) 在字符串前加r ...

  5. python字符串前面加f什么意思,浅析python字符串前加r、f、u、l 的区别

    先给大家介绍下Python 字符串前面加u,r,b,f的含义(字符串前缀) 1.字符串前加 u 例:u"我是含有中文字符组成的字符串." 作用: 后面字符串以 Unicode 格式 ...

  6. python 字符串前加u r b的意义

    摘自:https://www.cnblogs.com/liangmingshen/p/9274021.html 1.字符串前加 u 例:u"我是含有中文字符组成的字符串." 作用: ...

  7. python 字符串前加r b u f 含义

    python 字符串前加r b u f 含义 文章目录: 一.字符串前加 `r` 二.字符串前加 `b` 三.字符串前加 `u` 四.字符串前加 `f` 五.Python3.x中字符串转换成字节类型 ...

  8. 数据库工作笔记016---SqlServer2016_日期处理_ntext和text区别_开启远程连接_查看系统COm组件_Browser服务无法启动_导出数据_字符串前加N

    JAVA技术交流QQ群:170933152 sqlserver中的类型: ntext和text一样用来保存大量的文字数据,不过text用单字节保存数据 ,ntext固定用双字节保存数据. ntext保 ...

  9. Python 字符串前加r,b,u

    目录 问题描述 1.字符串前加字母`u` 2.字符串前加字母`r` 3.字符串前加字母`b` 问题描述 在处理python代码的时候,经常可以看到字符串的前面有u, b, 或r字母,如下图所示: b' ...

最新文章

  1. Elasticsearch性能优化实战指南
  2. donsker定理_中心极限定理和Donsker定理
  3. jad 反编译java
  4. C++知识点28——使用C++标准库(再谈迭代器)
  5. vSphere DRS
  6. 测量一条反斜线的频率和质量n+m=9
  7. 【CyberSecurityLearning 62】文件包含
  8. JS键盘事件(非常详细)
  9. 前端学习(3117):react-hello-react的类中的方法
  10. JavaScript - 动态数据
  11. Hadoop学习之整体介绍及环境搭建
  12. 服务器多个网站开启quarz,GitHub - WuLex/QuartzSynchroData: 多个不同站点服务器数据同步到总服务器(数据中心)...
  13. 汇编指令push,mov,call,pop,leave,ret建立与释放栈的过程
  14. 【ASK】设置网卡启动遇到的事!
  15. Test for open live write
  16. Redis 对象系统
  17. QQ、MSN、淘包旺旺、Skype临时对话的html链接代码
  18. JavaWeb笔记(五)后端
  19. 吸烟行为检测系统(Python+YOLOv5深度学习模型+清新界面)
  20. Star CCM+ Interface踩坑——表面发射率

热门文章

  1. 【R】【BiocManager::install】R语言装包
  2. 实时获取ccd图像_薄膜瑕疵在线检测系统0.1mm检测精度_实时在线检测
  3. go 函数参数nil_深入理解 Go-Defer的机制
  4. matlab高斯消去,高斯消去、追赶法 matlab
  5. php数组转字符串 join,jQuery中将数组转换成字符串join()和push()使用
  6. Django搭建个人博客:渲染Markdown文章目录
  7. linux集群-keepalived介绍-用keepalived配置高可用集群
  8. 无偏方差为什么除以n-1
  9. Windows Server 2016 + Exchange 2016 +Office365混合部署(四)
  10. 将Unreal4打包后的工程嵌入到Qt或者桌面中