C学习:%p和%x、%lx、%hx、%llx区别辨析

C学习:%p和%x、%lx、%hx、%llx区别辨析

一句总结


  • %p 可以匹配对应类型的指针地址,输出以16进制表示,会自带前缀0x
  • %x 可以对应int类型的指针,输出以16进制输出,不会自带前缀0x
  • 类似的,%lx,表示long类型整数,用16进制输出;%lx,表示long long类型64位整数,用16进制输出;

实例分析


  • 当然,上面也可以用 %ld,表示将long类型的指针地址,强制用10进制输出
  • %x只对应输出进制类型,具体的指针地址输出需要根据指针类型加修饰符
  • %p就固定了用16进制,可以囊括不同类型的指针地址表达

总之,推荐以下使用
1、%p来输出指针地址
2、%x来输出十六进制的数,配以修饰符来指明对应整数类型

举例应用


代码如下:

long a[100] = {0};
printf("%p\n", a);
printf("%lx\n", a);

输出效果:

0x7fff48bf8c10
7fff48bf8c10
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值