任何人都可以解释输出 printf(“%0 %x”,a); 吗?

这段代码让我很困惑。我无法理解%0里面在做什么printf

代码:

#include <stdio.h>

int main() {
    int a = 100;
    printf("%0 %x", a);
    return 0;
}

输出

%x

回答

%0 %x具有无效的printf转换规范:

  • 因此%0 %是无效的转换规范,因为%不接受标志。

大多数库只会输出%x,即:%for%0 %xfor the trailing x,忽略a参数,这就是你在系统上得到的,但行为实际上是未定义的,所以什么都不能假设。

相反,printf("|%0 5d|", 100);将输出,| 0100|但对于x无符号的转换忽略空格,因此printf("|%0 5x|", 100);将输出|00064|.


以上是任何人都可以解释输出 printf(“%0 %x”,a); 吗?的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>