为什么 printf("ABCDE "); 打印ABCDE

问题描述 投票:0回答:1
#include<stdio.h>
int main()
{
 printf("\101\102\103\104\105\12");
 return 0;
}

当我执行此代码时,它会打印

ABCDE
。如果我像下面这样给出 Printf
printf("\1011\102\103\104\105\12");
它打印A1BCDE。为什么它打印成这样?

c printf
1个回答
0
投票

\101
生成八进制字节 101,即十六进制 41 或十进制 65。您的终端将该字节显示为
A
,因为它需要 UTF-8 或其他一些 ASCII 派生编码,并且该字节在这些编码中映射到
A

© www.soinside.com 2019 - 2024. All rights reserved.