C++字符串字面量与字符常量区别

字符常量是单引号括起的单个字符如’A’,字符串字面量是双引号括起的字符序列如”ABC”,二者存储方式与用途不同。

c++字符串字面量与字符常量区别

字符串字面量和字符常量在C++中看似相似,但本质完全不同,理解它们的区别对正确使用C++非常重要。

定义与基本形式

字符常量是用单引号括起来的单个字符,例如:’A’、’1’、’n’。它的类型是 char,占用1个字节(通常),表示一个字符的ASCII值。

字符串字面量是用双引号括起来的字符序列,例如:”Hello”、””(空字符串)、”a”。它的类型是 const char[],即字符常量数组,并自动在末尾添加空字符 ‘’ 作为结束标志。

存储与内存表现

字符常量直接存储为一个整数值(如 ‘A’ 就是 65),可参与算术运算。

立即学习“C++免费学习笔记(深入)”;

字符串字面量存储在程序的静态存储区,是一个字符数组。比如 “Hi” 实际占3个字节:’H’、’i’、’’。

示例对比:

‘A’ → 类型 char,值 65 “A” → 类型 const char[2],内容 {‘A’, ‘’}

使用场景与常见错误

函数参数要求匹配类型。例如:

cout << 'X'; // 输出单个字符cout << "X"; // 输出字符串

虽然输出结果看起来一样,但底层处理不同。

常见错误:

把字符串字面量赋给 char 变量:char c = “a”; ❌(类型不匹配) 误以为 ‘abc’ 是合法字符常量 ❌(单引号内只能有一个字符) 比较字符串用 ==:if (“hello” == “hello”) 可能不成立,因比较的是地址

总结关键区别

符号不同:单引号 vs 双引号 类型不同:char vs const char[] 长度不同:字符常量长度为1,字符串至少为1(含 ‘’) 用途不同:字符用于单个符号处理,字符串用于文本序列

基本上就这些。记住:’x’ 是一个字符,”x” 是一个带结束符的字符数组。别混淆。

以上就是C++字符串字面量与字符常量区别的详细内容,更多请关注创想鸟其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/1476015.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2025年12月18日 23:53:06
下一篇 2025年12月18日 23:53:25

相关推荐

发表回复

登录后才能评论
关注微信