我一直在尝试了解八进制数的 printf 功能。如果我将代码编写为:
int main()
{
char *s = "\123";
printf("%s",s);
}
它给了我一个作为 S 的输出,它实际上是正确的,因为 S 的 ASCII 是八进制的 123。但我的问题是,编译器如何识别要从八进制转换的数字序列。例如:
char *s = "\123456"
将输出为 S456
八进制转换最多需要3个数字吗???
是否应该给出八进制数的最大限制(最大 3 位八进制数为 777)
现在因为最多有 255 个 ascii 字符(八进制 377),所以当我尝试打印 777 时,它会打印一个典型的 ascii 字符,这可能是因为没有分配给这个数字的 ascii。这个功能也依赖于编译器/操作系统???
我希望非常清楚,因为这是我的第一个问题:-)