我正在编写一个C代码,其中我的长度为2的char数组包含String My但是使用puts()将其打印到Screen.我得到了这个输出
我的£■0√"
这样的代码是什么原因???
如果我的数组长度为2,那我怎样才能获得长度为2+的输出?
听起来你错过了null终结符 - 字符串需要是三个字符"m","y","\ 0"
如果你已经明确地将字符串的长度设置为2,那么你就不会为NUL终结符留出空间,这是puts用于查找字符串结尾的内容.由于你没有,它会继续按照你定义的字符串打印出内存的内容,直到它到达内存中恰好包含0的字节.
为了避免这种情况,一般应不指定,当你创建一个字符串的长度:
char string[2] = "My"; // avoid this
char string2[] = "My"; // use this instead.
Run Code Online (Sandbox Code Playgroud)