首先对比一下加'#'和不加'#'的区别,代码如下
#include <stdio.h>
int main(int argc, char** argv)
{
int a = 13;
//加‘#’ 按16进制输出
printf("a=%#x\n", a);
//不加‘#’按15进制输出
printf("a=%x\n", a);
return 0;
}
测试结果如下:
结论
可以看出,加了 ' # ' 的输出行包含进制前缀' 0x ', 而没有加 ' # ' 的输出行省略了进制前缀。
所以 '#'的作用是 使输出结果带进制前缀(16进制'0x', 8进制'0')