黑马程序员技术交流社区

标题: 字符数组 [打印本页]

作者: wodeheimalife    时间: 2015-4-23 10:24
标题: 字符数组
在字符数组中  比如 char  a [5]= {‘a’,‘b’,‘c’,‘d’,‘e’};
对不?  不是每个字符串后面都默认一个‘\0’吗?  那不是应该是char  a  [6]; 才对吗?
作者: 麻木    时间: 2015-4-23 13:37
不是每个字符后面都有'\0' 是整个字符数组后面只有一个'\0'作为结束符 你字符有几个 你就定义几个 不用管'\0'的存在
作者: 人生充满期待    时间: 2015-4-23 14:44
字符串和字符数组不是一个概念,字符串通常是用字符数组来存储的!你写这个char  a[5]={‘a’,‘b’,‘c’,‘d’,‘e’},我可以认为他是一个字符数组 并不是字符串,字符串应该是 char a[5]=“abcde”, 这个字符数组存储的才是字符串,而 “abcde”={‘a’,‘b’,‘c’,‘d’,’e’,'\0’},另外char  a[5]={‘a’,‘b’,‘c’,‘d’,‘e’}这个括号中得5是可以省略掉得,当然你写char  a[5]={‘a’,‘b’,‘c’,‘d’,’e’,’\0’} 系统其实会发出警告的,你要是用字符数组来存储一个字符串 应该写char a[5]=“abcde”
我写的有点乱 不知道你能不能知道我的意思!
作者: xiongmaoren518    时间: 2015-4-23 16:02
字符数组的话就对着,确实是每个字符串在内存中存储后面都有一个\0,你写的那个只能存储字符数组,不能存字符串,因为内存不够,编译器会报错
作者: ruihai    时间: 2015-4-23 16:03
其实打印出来看看就知道啦,楼上我试了下 char a[5]=“abcde” 应该是不行的,因为'\0'也要占一个位置。
我打出来看了看,结果是这样
作者: wodeheimalife    时间: 2015-4-25 09:23
人生充满期待 发表于 2015-4-23 14:44
字符串和字符数组不是一个概念,字符串通常是用字符数组来存储的!你写这个char  a[5]={‘a’,‘b’,‘c’, ...

其实我是有点晕的。。。{:3_62:}
作者: 凌乱    时间: 2015-4-25 09:36
单引号不是字符?双引号才是字符串吧




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2