我一直在尝试理解printf对于八进制数字的功能。
如果我将代码写成:
int main()
{
char *s = "\123";
printf("%s", s);
}
它给我输出了S,这实际上是正确的,因为S的ASCII在八进制中是123。
但编译器如何识别要从八进制转换的数字序列呢?例如:
char *s = "\123456"
会输出 S456。
是不是八进制转换最多只能有三个数字?
八进制的最大限制是多少(最大的三位数八进制数是777)。
现在,由于最多只有255个ASCII字符(八进制377),所以当我尝试打印777时,它会打印一个典型的� ASCII字符,我认为这可能是因为没有将此数字分配给任何ASCII字符。 此功能是否取决于编译器/操作系统?