`%p` 对 printf 有什么用处?

2023-11-27

毕竟,这两个语句都做同样的事情......

int a = 10;
int *b = &a;
printf("%p\n",b);
printf("%08X\n",b);

例如(具有不同的地址):

0012FEE0
0012FEE0

根据需要格式化指针很简单%x,那么有什么好的用途吗%p option?


他们不做同样的事情。后者printf声明解释b as an unsigned int,这是错误的,因为b是一个指针。

指针和unsigned ints 的尺寸并不总是相同,因此它们不可互换。当它们大小不同时(这种情况越来越常见,因为 64 位 CPU 和操作系统变得越来越普遍),%x只会打印一半的地址。在 Mac(可能还有其他一些系统)上,will毁掉地址;输出将会错误。

总是使用%p供指点。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

`%p` 对 printf 有什么用处? 的相关文章

随机推荐