printf语句中%p ,%#x区别

1,格式控制符“%p”中的p是pointer(指针)的缩写。指针的值是语言实现(编译程序)相关的,但几乎所有实现中,指针的值都是一个表示地址空间中某个存储器单元的整数。printf函数族中对于%p一般以十六进制整数方式输出指针的值,附加前缀0x。

2,这里的"c=%#x "意思是:是一个格式控制符,其中c=是普通字符,%#x是格式说明, 是转义字符;其中的%#表示的输出提示方式,如果是8进制,在前面加0,如果是十进制,不加任何字符,如果是十六进制,会加上0x

当执行:printf("c=%#o ",c);输出的是:0101(把16进制41转化为2进制)
printf("c=%#d ",c);输出的是:65(把16进制41转化为10进制)
printf("c=%#x ",c);输出的是:0x41

原文地址:https://www.cnblogs.com/will-boot/p/3301372.html