#include<stdio.h>
int main()
{
char name[5] = {'A', 'B', 'C', 'D', 'E'};
printf(name);
return 0;
}**我正在学习数组,并希望打印这个数组“名称”,代码运行,输出类似于'ABCDE└‼╠‘。为什么会出现这个└‼╠符号?
发布于 2022-09-27 14:12:51
因为你没有空-终止你的字符串。
函数printf将打印一个字符串,直到它找到一个指示字符串结束的\0字节。
您没有放入一个\0字节,所以printf继续打印,直到它遇到一个终结符,这完全是运气。
在这种情况下,它似乎多打印了3个字符的随机字节,直到它碰巧找到字符串标记的结尾。
要解决这个问题,请执行以下操作:
char name[6] = {'A', 'B', 'C', 'D', 'E', '\0'};
// Changed the size to 6, and added the NULL-terminator (aka. End-of-String Marker)https://stackoverflow.com/questions/73869054
复制相似问题