您能帮我了解一下此简单代码的输出:
const char str[10] = "55\01234";
printf("%s", str);
输出为:
55
34
最佳答案
字符串中的字符序列\012
解释为octal escape sequence。解释为八进制的012
值是十进制的10
,这是大多数终端上的换行符(\n
)字符。
在Wikipedia页面上:
由于您的序列包含三个有效的八进制数字,因此将对其进行解析。它不会继续使用3
中的34
,因为那是第四位,并且仅支持三位。
因此,您可以将字符串写为"55\n34"
,这很清楚您所看到的内容,并且更便于移植,因为它不再对换行符进行硬编码,而是让编译器生成合适的东西。
关于c - 了解包含反斜杠(\012)的printf的输出,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/29819239/