栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

C语言中字符串两中定义方式和区别

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

C语言中字符串两中定义方式和区别

前言

在学习字符串这方面的内容时,发现字符串定义的两种方式虽然内容相同但还是有细微的区别

概念

字符串就是一串用双引号连接起来的字符串字面值,简称为字符串

定义方式

上代码

char acter1[]="Hello world";//第一种定义方式

char acter2[]={'H','e','l','l','o','w','o','r','l','d'}; 第二种定义方式

此时并不能看出这两种定义方式的区别,拿到VS调试器看看

 

很明显的看出,第一种定义方式末尾添加了一个字符'',而''就是字符串的转义字符

 

而第二种定义方式就没有自动添加结束标志

再看一下彼此的输出结果

 第一种定义方式输出了我们想要的结果,而第二种定义方式则输出了乱码,我们不想要的字符

接下来我们来讨论这个现象出现的原因

计算机的存储方式

在计算机中,内存是连续存储的,我们创建一个数组出来,就是在内存中随机开辟出一块内存空间来

而这块空间的前后有什么数据,我们并不是很清楚

 如上图,在第二种定义方式的影响下,我们没有设定字符串结束标志,那么它就会在后面随机生成,至于是在第几位我们并不清楚,所以会出现乱码

假如我们自己添加上'',结果就会出现我们想要的样子,如下图

 而我们也只能控制后面的字符,而无法控制前面的字符

总结

推荐使用第一种定义方式

 

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/702837.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号