C语言单引号和双引号的区别是什么
发表于:2026-11-03 作者:千家信息网编辑
千家信息网最后更新 2026年11月03日,本文小编为大家详细介绍"C语言单引号和双引号的区别是什么",内容详细,步骤清晰,细节处理妥当,希望这篇"C语言单引号和双引号的区别是什么"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习
千家信息网最后更新 2026年11月03日C语言单引号和双引号的区别是什么
本文小编为大家详细介绍"C语言单引号和双引号的区别是什么",内容详细,步骤清晰,细节处理妥当,希望这篇"C语言单引号和双引号的区别是什么"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。
C语言中的单引号用来表示字符字面量,编译为对应的ASCII码
C语言中的双引号用来表示字符串字面量,编译为对应的内存地址
'a"表示字符字面量,在内存中占一个字节,'a"+1表示'a"的ASCII码加1,结果为'b"。
"a"表示字符串字面量,在内存中占两个字节,"a"+1表示指针运算,结果指向"a"结束符'"
分析:下面这段程序合法吗?
char* p1 = 1; // p1指向地址0x00000001char* p2 = "1"; // p2指向地址0x00000031char* p3 = "1"; // p3指向地址0x080484d0
这三条语句是合法的,会出现警告,但是本质上并没有影响程序的运行
如果程序改成这样:
#includeint main(){ char* p1 = 1; char* p2 = "1"; char* p3 = "1"; printf("%s,%s,%s", p1, p2, p3); //出现段错误 printf(""); //出现段错误 printf(""); return 0;}
小贴士:
1、字符字面量被编译为对应的ASCII码
2、字符串字面量被编译为对应的内存地址
3、内存的低地址空间不能在程序中随意访问

右上图可知,所有低于0x08048000的地址空间都不能访问,所以p1和p2都不能访问内存地址,会出现段错误・。

程序实例分析:
char c = "string";
其实这个明显是错误的,因为字符串会编译为对应的内存地址,内存地址占4个字节,但是c只占一个字节,会产生截断,所以一般对于字符串,我们用指针来指向
char* p= "string";
读到这里,这篇"C语言单引号和双引号的区别是什么"文章已经介绍完毕,想要掌握这篇文章的知识点还需要大家自己动手实践使用过才能领会,如果想了解更多相关内容的文章,欢迎关注行业资讯频道。
地址
引号
内存
字符
字面
语言
指向
程序
译为
字符串
字节
错误
文章
合法
内容
指针
空间
结果
分析
妥当
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技海报
互联网巨头科技公司
没上市的科技互联网公司
科技服务与互联网
上海挚品互联网科技
互联网科技咨询
顺网科技2021年互联网排名
安控科技rtu产品工业互联网
云创客互联网科技公司
江苏南京365互联网科技
互联网之后的科技是什么
贵州叶脉互联网科技有限公司所属行业
移动互联网科技公司
阿里互联网科技企业
银行科技岗属于互联网吗
富国互联网金融科技混合基金
富国互联网科技002692
互联网科技包装股
银川新华互联网科技学校原画
互联网科技大佬云集
百单网互联网科技有限公司
宜安科技 互联网金融
西安互联网科技公司
互联网科技汛
博兴的互联网电子科技公司
湖南诚度互联网科技有限公司
昭通互联网科技选哪家
新兴科技互联网创新大赛颁奖典礼
广州市恰铎互联网科技有限公司
重庆科技产业互联网有哪些