C++中两种字符串定义方式和区别介绍
目录
- 前言
- 概念
- 定义方式
- 计算机的存储方式
- 总结
前言 在学习字符串这方面的内容时,发现字符串定义的两种方式虽然内容相同但还是有细微的区别
概念 字符串就是一串用双引号连接起来的字符串字面值,简称为字符串
定义方式 上代码
char acter1[]="Hello world"; //第一种定义方式 char acter2[]={'H','e','l','l','o','w','o','r','l','d'}; 第二种定义方式
此时并不能看出这两种定义方式的区别,拿到VS调试器看看
文章图片
很明显的看出,第一种定义方式末尾添加了一个字符'\0',而'\0'就是字符串的转义字符
文章图片
而第二种定义方式就没有自动添加结束标志
再看一下彼此的输出结果
文章图片
第一种定义方式输出了我们想要的结果,而第二种定义方式则输出了乱码,我们不想要的字符
接下来我们来讨论这个现象出现的原因
计算机的存储方式 在计算机中,内存是连续存储的,我们创建一个数组出来,就是在内存中随机开辟出一块内存空间来
而这块空间的前后有什么数据,我们并不是很清楚
文章图片
【C++中两种字符串定义方式和区别介绍】 如上图,在第二种定义方式的影响下,我们没有设定字符串结束标志,那么它就会在后面随机生成,至于是在第几位我们并不清楚,所以会出现乱码
假如我们自己添加上'\0',结果就会出现我们想要的样子,如下图
文章图片
而我们也只能控制后面的字符,而无法控制前面的字符
总结 推荐使用第一种定义方式
到此这篇关于C++中两种字符串定义方式和区别介绍的文章就介绍到这了,更多相关C++字符串定义方式内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 分步骤教你用python一步步提取PPT中的图片
- 关于配置化的再思考(软件领域中的资源配置)
- vue3面试知识点十大问
- 关于for i in list1: 中i变量的内容
- C++|PAT 乙级-1035
- C++|PAT乙级-1037
- 修改Ehcache缓存中取到的值,缓存中的值也被修改了
- 日常杂谈|论在Windows中鱼与熊掌不可兼得性——该文件没有与之关联的应用来执行该操作。请安装应用,若已经安装应用,请在“默认应用设置”页面中创
- Are|成功解决C++编译器报错[Error]in C++98 ‘arr‘ must be initialized by constructor, not by‘{...}‘
- UVM|【UVM避坑】记录UVM/SV使用过程中遇到的问题