博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
关于C语言中%p和%X的思考
阅读量:6676 次
发布时间:2019-06-25

本文共 768 字,大约阅读时间需要 2 分钟。

概述

  说白了,(%A)仅仅代表以何种格式显示所要显示的数据,具体何种格式如下:

%d 有符号10进制整数 %i 有符号10进制整数 %o 无符号8进制整数 %u 无符号10进制整数 %x 无符号的16进制数字,并以小写abcdef表示%X 无符号的16进制数字,并以大写ABCDEF表示%F/f 浮点数 %E/e 用科学表示格式的浮点数 %g 使用%f和%e表示中的总的位数表示最短的来表示浮点数 G 同g格式,但表示为指数 %c 单个字符 %s 字符串

  所以%p是将所要显示的数据以地址指针格式输出,即如果是32位,以4字节十六进制格式输出,如果是64位,以8字节十六进制格式输出。而%X仅仅是将要显示的数据以十六进制格式输出,所以当地址做高位为0是会不显示,若想要显示显示为4字节,可以将格式设置为%08X。

验证实例:

  以下是一个简单的验证例程:

#include
//test#if 1int main(){ int val = 10; int* add = &val; printf("val, &val, add的值分别为:%d 、%d、%d\n", val, &val, add); printf("val, &val, add的值分别为:%p 、%p、%X\n", val, &val, add); return 0;}#endif

 运行结果

  以上程序运行结果如下图所示:

 

  仔细观察以上对比结果,其中最重要的是Val的值,若以%d格式输出为10;以%p格式输出为0000 000A 。相信有一点基础的人都可以很轻松的明白其中端倪。

 

转载于:https://www.cnblogs.com/lixuejian/p/10797039.html

你可能感兴趣的文章
Android 面试题集合(2018)
查看>>
Python3入门机器学习(四)- kNN算法的学习与使用
查看>>
Three.js粒子特效,shader渲染初探
查看>>
SAP Cloud for Customer Price-计价简介
查看>>
写个Markdown插件,讲讲Chrome扩展开发
查看>>
CSS Grid布局
查看>>
阿里云马劲:保证云产品持续拥有稳定性的实践和思考
查看>>
Objective-C中浮点数表示时精度的小坑
查看>>
JavaScript 工作原理之一-引擎,运行时,调用堆栈(译)
查看>>
python终端操作models
查看>>
前端面试自查
查看>>
解读 Node 核心模块 Stream 系列一( Readable )
查看>>
webpack入门笔记——热替换
查看>>
拒绝一针串到底式的参数类
查看>>
Wakatime 不升级会员也能查看历史数据了!
查看>>
优雅的实现CALayer的"AutoLayout"的两种方案
查看>>
从双十一看阿里云安全的“创世纪”——采访阿里云安全掌门人肖力有感
查看>>
基于django的视频点播网站开发-step4-首页功能
查看>>
告别李国庆,19岁当当的思变与求变
查看>>
汽车电商纷纷折戟,新零售能唱好这出戏吗?
查看>>