c语言里的%p的作用,关于C语言中%p和%X的思考

概述

说白了,(%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 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

运行结果

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

636f223023782e8a26b730719661e0d1.png

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

C语言中,头文件和源文件的关系(转)

简单的说其实要理解C文件与头文件(即.h)有什么不同之处,首先需要弄明白编译器的工作过程,一般说来编译器会做以下几个过程: 1.预处理阶段 2.词法与语法分析阶段 3.编译阶段,首先编译成纯汇编语句, ...

C 语言中 setjmp 和 longjmp

在 C 语言中,我们不能使用 goto 语句来跳转到另一个函数中的某个 label 处:但提供了两个函数——setjmp 和 longjmp来完成这种类型的分支跳转.后面我们会看到这两个函数在处理异常 ...

c语言中的scanf在java中应该怎么表达,Scanner类。

1 java是面向对象的语言 它没有像C语言中的scanf()函数,但是它的类库中有含有scanf功能的函数 2 java.util包下有Scanner类 Scanner类的功能与scanf类似 3 ...

C语言中do...while(0)的妙用(转载)

转载来自:C语言中do...while(0)的妙用,感谢分享. 在linux内核代码中,经常看到do...while(0)的宏,do...while(0)有很多作用,下面举出几个: 1.避免goto语 ...

C语言中,定义的含义?声明的含义?它们之间的区别是什么?

在C语言中,对于定义和声明,也许我们非常的熟悉,但不一定真正的了解! 定义的含义:所谓定义,就是创建(编译器)一个对象,为这个对象分配一块内存空间并取名,也就是我们平常所说的变量名或对象名,一旦这个名 ...

C++中函数的默认参数和C语言中volatile的学习

1.函数默认参数 1 int func(int a,int b=10) 2 { 3 return a*b; 4 } 5 6 int main() 7 { 8 int c=func(2); 9 cout ...

C语言中qsort函数用法

C语言中qsort函数用法-示例分析    本文实例汇总介绍了C语言中qsort函数用法,包括针对各种数据类型参数的排序,非常具有实用价值非常具有实用价值. 分享给大家供大家参考.C语言中的qsort ...

c语言中time相关函数

工作中遇到的函数: int seed = time(NULL); srand(seed); signal(SIGINT, stop); signal(SIGUSR1, sig_usr1); 搜time ...

C语言中的static 详细分析

转自:http://blog.csdn.net/keyeagle/article/details/6708077/ google了近三页的关于C语言中static的内容,发现可用的信息很少,要么长篇大 ...

随机推荐

04讲 正确使用heterogeneous类型的元件

heterogeneous类型的元件1.可能出现的错误     再使用数个heterogeneous 元件的时候会因为分部件的不匹配 2.出现错误的原因原因是这四个运放,软件它并不识别那两个是配在一起 ...

EF基本操作增、删、查、改、分页,join……等

一.批量添加数据 static void Main(string[] args) { add(); add2(); Console.ReadKey(); } static void add() { D ...

Codeforces Round #303 (Div. 2) B 水 贪心

B. Equidistant String time limit per test 1 second memory limit per test 256 megabytes input standar ...

CodePen's CSS

p{text-indent:2em;}前端开发whqet,csdn,王海庆,whqet,前端开发专家 翻译自:CodePen's CSS 翻译人员:前端开发whqet,意译为主.不当之处欢迎大家指正. ...

tnvm 安装模块不能找到关联模块问题

export NODE_PATH='/Users/yuqi/.tnvm/lib/node_modules' export PATH='/Users/yuqi/.tnvm/bin':$PATH sour ...

C语言程序设计II—第九周教学

第九周教学总结(22/4-28/4) 教学内容 本周的教学内容为: 9.1 输出平均分最高的学生信息 知识点:结构的概念.结构的定义形式.结构的嵌套定义.结构变量和结构成员变量的引用.重难点:结构变量 ...

将web应用部署到Tomcat的三种方式

Tomcat作为Servlet/JSP容器(服务器)挺不错的,开源免费,需要知道的是Tomcat是一个Web服务器,其符合Servlet/JSP规范,但是却没有实现所有JavaEE规范,所以我们还是应 ...

MongoDB的基本概念

MongoDB的基本概念 库 db就是数据库 文档就是数据表的行 集合就是数据表,这个没有模式,啥叫没有模式呢,就是没有列的定义,随便什么属性都行,这点就比关系行数据库牛逼10000000倍,逆天了.

将项目托管到GitHub实现步骤

修改于:2017.1.14 第一步:先注册一个Github的账号 注册地址:Github官网注册入口 第二步:准备工作 gitHub网站使用Git版本管理工具来对仓库进行管理,但是它们并不等同. gi ...

Oracle简单脚本演示样例

Oracle简单脚本演示样例 1.添加表 --改动日期:2014.09.21 --改动人:易小群 --改动内容:新增採购支付情况表 DECLARE VC_STR           VARCHAR2( ...

  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值