如题,定义一个长度为20的字符串,区别在于一个双引号中什么也没有,而另一个双引号中有一个空格。为了方便知道数组中存入的字符串究竟是什么,我们用调试功能,查看str数组中究竟是什么。

这是 str[20]=""

这是 str[20]=" "

这样就可以知道,当我们开了20字节的字符数组,且当字符不够而是时,它会自动加上'\0',所以我们可以看到,一个只重复了19次,一个只重复了18次,那么'\000' 究竟又是什么呢?

按照网上的说法:\000是\0的三位八进制

再看一个例子,我们可以将双引号是空格的数组,第二个元素改为 e ,此时重复的次数由18变成了17,且最终输出的结果,正是我们想要的(puts输出默认就是一行,不用\n

同样的办法,我们用在双引号中什么也没有的数组上,发现情况不是我们预想的结果

这是什么原因呢?

可能的原因为,根据我们刚刚所说,\000,可能是\0的效果,当我们改第二个元素时,第一个仍然是\000,所以字符串就相当于结束了,最后输出的自然也就是一片空白

当我们将第一个元素修改的时候,结果发现修改了

当我们将第一个和第二个都修改的时候,发现,输出的结果如我们所料

总结:str[20]="" 和str[20]=" ",其实并没有什么大的区别,一般都是出于想像数字数组一样,把数组都先初始化为0,然后再用循环等手段,修改它的值。由于是一开始就定义了它的大小为20,当后面修改进去的总字节不足20的时候,后面剩余的字节(没用到的)也不会输出,这是它的好处。

关于char str[20]=““ 和 char str[20]=“ “相关推荐

  1. 【C++】20. const char *str[]、指针的字节长度等 分析

    在64位操作系统中,所有类型的指针都是8字节. 在32位操作系统中,所有类型的指针都是4字节. 对于const char *str[]={"aa","bbb" ...

  2. char* str = abc ;跟char str[] = abc;的区别

    突然发现了一个以前一直默认的错误,同样char *c = "abc"和char c[]="abc",前者改变其内容程序是会崩溃的,而后者完全正确. 程序演示: ...

  3. 面试题--字符串指针与字符串数组的区别char* st=abc;与char* str[]=abc;的异同

    题1.   删除串中指定的字符(做此题时,千万不要开辟新空间,否则面试官可能认为你不适合做嵌入式开发) 参考代码: void delChar(char* str, char c) { int i, j ...

  4. C++中 char* 、string、 char、char[]在各种情况下的输入与输出

    之前在自己练手写代码的时候总是会在字符串,字符这一块卡住,今天写下这篇文章给自己长长记性! 其实在代码过程中会遇到很多很玄学的问题.刚刚在尝试的时候找到了之前写的测试字符串的程序,放到另外一个工程里跑 ...

  5. GetMemeory(char *p);GetMemeory(char **p);char* GetMemeory()用法!

    void GetMemeory(char *p) {p=(char*)malloc(100); }void main() {char *str=NULL;GetMemory(str);strcpy(s ...

  6. char *c = abc和char c[]=abc

    转自:http://blog.csdn.net/wallwind/article/details/7210474 char *c = "abc"和char c[]="ab ...

  7. [c++基础] const char and static const char

    部分内容摘自:https://blog.csdn.net/ranhui_xia/article/details/32696669 The version with const char * will ...

  8. C语言char对应的码,char码值对应列表大全

    Char("0") 为0的字符 Char("1") Char("2") Char("3") Char("4&q ...

  9. 在Java中将字符串转换为char数组,将char数组转换为String

    Today we will learn how to convert String to a char array and then char array to String in Java. 今天, ...

最新文章

  1. 支付宝对接3(收费问题)
  2. Sensors Data:初创公司构建数据分析平台
  3. Spring5参考指南:Bean的生命周期管理
  4. scss-@extend
  5. mca终端_MCA的完整形式是什么?
  6. 平板电脑有什么用_除了盖泡面,平板电脑没什么用了
  7. 做完项目,对css样式有新发现新感悟
  8. 那些年我们追过的计算机经典书
  9. 20191024:单调栈问题的引出
  10. 一些代码规范(收集)
  11. Arcpy 实现批量按掩膜提取
  12. 几纳米间风云:手机摄影的制高点争夺战
  13. 安装vs2010 sp1失败
  14. 信道检测手机软件 ios_【对讲机的那点事】宝峰UV5R对讲机上中继台的信道存储设置方法...
  15. 简易的机器人聊天_如何制作一个简单的聊天机器人
  16. Codeforces 1194D
  17. msfvenom生成muma
  18. ES slop问题纪录
  19. no matching provisioning profile found
  20. tf.Variable

热门文章

  1. 前端本地缓存知识:indexDB、localStorage、sessionStorage
  2. 太仓有培训计算机考证的吗
  3. 设计模式——工厂模式(简单工厂/工厂/抽象)
  4. Linux/Win/MacOS系统 安装JDK(Java)教程,JDK下载
  5. html怎么让表格整体置顶,css如何让表格居中?
  6. Android R setenforce 实现
  7. Linux 编译安装Nginx
  8. java继承案例分析_Java面向对象_继承——基本概念以及管理化妆品实例分析
  9. C#指定时区时间转为本地时间
  10. svn 忽略文件夹,svn忽略版本控制