C语言单引号和双引号的区别是什么
发表于:2024-11-27 作者:千家信息网编辑
千家信息网最后更新 2024年11月27日,本文小编为大家详细介绍"C语言单引号和双引号的区别是什么",内容详细,步骤清晰,细节处理妥当,希望这篇"C语言单引号和双引号的区别是什么"文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习
千家信息网最后更新 2024年11月27日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安全错误
数据库的锁怎样保障安全
蜀门游戏怎么退出服务器
中国商飞上航公司软件开发岗
通讯管理服务器无线核准认证
移动网络安全控制技术
天象网络技术有限公司地址
法意数据库线上答题活动
本地服务器安装系统
美国对于服务器的管理制度
网络技术的发展对企业
魔兽争霸3连接不上服务器
星际争霸2修改数据库
工业软件开发上市公司
长沙数据库管理工程师
关闭数据库连接池连接
无服务器架构组成
数据库文档主外键
文件服务器nas
2021国家网络安全视频
理科外文电子文献数据库
保存数据库
广州汇睿网络技术有限公司
文档管理系统数据库设计
计算机数据库coon的含义
服务器代理地址有什么用
服务器的脚本语言
中油即时通如何设置服务器
简述嵌入式软件开发的特点
服务器内部温度传感器装在哪里
鸠鸠互联网科技西安分公司
计算机网络技术 题库