关于C语言中%p和%X的思考
2024-10-19 11:50:33
概述
说白了,(%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<stdio.h> //test
#if 1
int main()
{
int val = ;
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 ;
}
#endif
运行结果
以上程序运行结果如下图所示:
仔细观察以上对比结果,其中最重要的是Val的值,若以%d格式输出为10;以%p格式输出为0000 000A 。相信有一点基础的人都可以很轻松的明白其中端倪。
最新文章
- CAS FOR WINDOW ACTIVE DIRECTORY SSO单点登录
- Linux 安装与配置 mysql 环境
- 重学ps_1
- c#中如何执行存储过程
- 为什么要 MySQL 迁移到 Maria DB
- AT&;T asm之Qt使用
- selenium+python笔记6
- centos下安装usb摄像头驱动
- 如何使用service命令来管理nginx
- 使用Azure云存储构建高速 Docker registry
- javascript数据类型、初始化
- <;原>;ASP.NET 学习笔记之HTML helper中参数何时会是路由参数,何时又会是query string?
- Python的.py文件打包成exe可执行文件
- OpenCV探索之路(九):模板匹配
- Winform DevExpress控件库(三) 使用NavBarControl控件定制导航栏
- 4、json-server的使用
- Eclipse引入spring约束详细教程
- python栈
- win8.1的ie11无法打开127.0.0.1和本机IP访问
- 【xsy1232】Magic 最小割
热门文章
- Getting &#39;The AWS Access Key Id you provided does not exist in our records&#39; error with Amazon MWS
- 019PHP基础知识——函数(二)
- POJ 2689 筛法求素数
- Chrome插件(Extensions)开发实践
- SGU 132. Another Chocolate Maniac 状压dp 难度:1
- sgu 142. Keyword 暴力,hash 难度:0
- LNMP架构下Discuz论坛的搭建
- python(五):面向对象--类和实例
- StreamSets Data Collector Edge 说明
- sql语句学习(第二季