%p与%X的区别?

CindyQin1 2004-03-21 10:09:37
%p和%X是不是没有什么区别呀?
{
int a[]={1,2,3,4},*p=a;
printf("%p\n",p);
printf("%X\n",p);
}
结果都是 FFCE
应该都是把p的内容作为16进制输出吧?
...全文
991 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
陈硕 2004-03-21
  • 打赏
  • 举报
回复
%X 打印的是 int 型,%p打印void* 型,如果 void* 不能用 int 表示,那么就有区别(例如64-bit 平台)。
dodofcboy 2004-03-21
  • 打赏
  • 举报
回复
en
ma7ht 2004-03-21
  • 打赏
  • 举报
回复
("%p 打印地址
("%X 按无符号16进制输出
steel007 2004-03-21
  • 打赏
  • 举报
回复
你此处输出的是p作为指针的值,而非指针指向的值~
ipkathy 2004-03-21
  • 打赏
  • 举报
回复
p是打映出该数字的内存地址
x是打印出无0x的16进制
CindyQin1 2004-03-21
  • 打赏
  • 举报
回复
%X 打印的是 int 型,%p打印void* 型,如果 void* 不能用 int 表示,那么就有区别(例如64-bit 平台)。

不太明白,比如说:%s:以字符串的形式输出;
%X 无符号16进制输出,这个16进制的数是一个int型的数;
那么%p应该什么说呢????

70,012

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧