黑马程序员技术交流社区

标题: 字符串数组中中的问题 [打印本页]

作者: 77媛儿    时间: 2014-3-17 07:42
标题: 字符串数组中中的问题
char name[8]="jack888\n";
这个数组字符串加上\n里边正好8个数组元素,可是加上\0,是不是应该是char name[9]=“jack888\n”?

作者: 脸皮猴    时间: 2014-3-17 08:41
假如你定义的是char name[8]="jack888\n";name这个name数组内就没有'\0'这个元素因为数组不能越界,那个'\0'不会在数组中,但是假如你定义的是
char name[9]="jack888\n";那么数组中最后一个name[9]就是'\0'。
作者: 77媛儿    时间: 2014-3-17 10:56
脸皮猴 发表于 2014-3-17 08:41
假如你定义的是char name[8]="jack888\n";name这个name数组内就没有'\0'这个元素因为数组不能越界,那个'\0 ...

哦哦 我懂了,如果我写char name[2]="jack",这个就会报错 ,char name[ ]="jack\n" 应该是6个元素吧
作者: lixiangzhou    时间: 2014-3-17 12:10
77媛儿 发表于 2014-3-17 10:56
哦哦 我懂了,如果我写char name[2]="jack",这个就会报错 ,char name[ ]="jack\n" 应该是6个元素吧 ...

写成char name[2] = "jack"不会报错的,由于name只分配了2个字节,所以只会保存 'j' 和 'a',至于 'c' 和 'k' 就不会被保存。
作者: stone24    时间: 2014-3-21 09:24
lixiangzhou 发表于 2014-3-17 12:10
写成char name[2] = "jack"不会报错的,由于name只分配了2个字节,所以只会保存 'j' 和 'a',至于 'c' 和 ...

会报错啊,字符串不存在\0,就会报错,printf("%s\n",name);没法输出




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