TLDR:比如
char x[] = "some output \06 MORE OUTPUT";
puts(x);
给出意想不到的结果.
所以我有这个代码:
#include <stdio.h>
int main(void)
{
char x[] = "some output \0 MORE OUTPUT";
puts(x);
return 0;
}
它会打印:"一些输出",这是预期的,因为\0
意味着字符串的结束.但如果我在\0
后面添加一个数字,结果就会发生变化.所以代码
#include <stdio.h>
int main(void)
{
char x[] = "some output \06 MORE OUTPUT";
puts(x);
return 0;
}
打印:一些输出更多输出
因此,出于某种原因,如果我在\0
之后添加一个数字,那么\0
就不再被识别为字符串的结束,而是打印这个RST符号.
如果我只是用\6
替换\0
,结果是一样的.如果我用其他一些数字来做,结果是一样的,只是符号不同.
为什么呢?这\6
件事是什么?我在网上找不到任何关于它的信息.它是如何工作的?