书上写着:字符串以空字符结尾,即字符串的最后一个字符总是空字符。而字符数组可以不含空字符
给个实例解释下
假设char *p = "acd\0ge";这个字符串只道d就结束了
数组同样 char a[] = “acde”数组在末尾的时候会自动加上一个\0
假设数组:char a[3] = {'a','b','c'};这个数组只能包含3个字符,所以这里肯定不可能存在\0,在输出的时候数组就会越界,编译器在每个字符串末尾都会加上一个\0,但这里由于开辟的空间不足,所以。。
数组同样 char a[] = “acde”数组在末尾的时候会自动加上一个\0
假设数组:char a[3] = {'a','b','c'};这个数组只能包含3个字符,所以这里肯定不可能存在\0,在输出的时候数组就会越界,编译器在每个字符串末尾都会加上一个\0,但这里由于开辟的空间不足,所以。。
温馨提示:答案为网友推荐,仅供参考
第1个回答 2011-08-19
这个是概念上的错误
因为 字符串 一般是用\0 即空字符作为结束符 但是并不代表 字符串的中间就不可以含有\0。
实例:
char str[10] = "1234\0567";
是没有错误的。
因为 字符串 一般是用\0 即空字符作为结束符 但是并不代表 字符串的中间就不可以含有\0。
实例:
char str[10] = "1234\0567";
是没有错误的。
第2个回答 2011-08-19
问题看不太懂啊
字符串的最后一个字符一定是 /0 而数组 比方是3个长度的 可以是[a][a][a]也可以是[a][a][](最后一个是真正的空 而不是/0)
字符串的最后一个字符一定是 /0 而数组 比方是3个长度的 可以是[a][a][a]也可以是[a][a][](最后一个是真正的空 而不是/0)