C语言 \0是在字符串后自动添加的吗?

求助!

为什么我定义str[2]="ab"再用%s打印str时会打出ab后面的垃圾数值呢?不是会在b后面自动加\0吗?

是自动添加的,但这是要占地方的。
如果你不指定字符数组的长度,那系统会自动保留位置,现在你指明数组长度是2,那就没有地方存放\0了。
温馨提示:答案为网友推荐,仅供参考
相似回答