任何一个字符串,都要一个结束
标记。如果没结束标记,那么后面的那些没定义
的量可能是乱码,但是乱码不是结束,系统会认为他是字符串的一部分,那么在输出或者调用的时候,可能会多输出东西甚至出错。空格处填上'\0',其ASCII码的值为0,这是字符串结束符。
以下内容摘自网络。
对字符数组,有以下几种定义方法:
1)char str[]="12345"
或给字符串加上大括号:char str[]={"12345"}
这种方法定义时,系统会自动在字符串的末尾加上字符串结束符,即 ‘\0’,
2)char str[10]={'1','2','3','4','5'}
这种方法定义时,系统会自动从未初始化的元素开始,将之后的元素赋为\0,如上面的数组str中的元素实际上是:'1','2','3','4','5','\0','\0','\0','\0','\0'
3)char str[]={'1','2','3','4','5'}
这种方法定义时,系统不会自动在字符串的末尾加上字符串结束符
此时用sizeof()函数可以正确求出其所占的内存大小;但用strlen()函数不能正确求出其长度,因为strlen是通过\0判断字符串结束的。
所以,采用该方法定义时,一般人为地加上\0,即char str[]={'1','2','3','4','5', '\0'}
评论列表(0条)