C语言中的"%p"格式解释
来源:互联网 发布:网络活动主持词开场白 编辑:程序博客网 时间:2024/06/06 12:56
格式控制符“%p”中的p是pointer(指针)的缩写。指针的值是语言实现(编译程序)相关的,但几乎所有实现中,指针的值都是一个表示地址空间中某个存储器单元的整数。printf函数族中对于%p一般以十六进制整数方式输出指针的值,附加前缀0x。
示例:
int i = 1;
printf("%p",&i);
相当于
int i = 1;
printf("0x%x",&i);
对于32位的指针,输出一般会是类似0xf0001234之类的结果。
%p存在的理由除了附加前缀输出的便利性以外,如LS所说,指针的大小是不确定的,由实现决定。根据地址空间的大小,一般有16位、32位、64位的指针。尽管目前32位平台上的指针一般全是32位的,但旧的一些平台上可能有多种长度的指针(例如非标准的near、far、huge修饰的pointer)混用,无法用%x、%lx、%hx、%llx(对应int、long、short、long long)中的任意一种保证能输出所有类型的指针。
示例:
int i = 1;
printf("%p",&i);
相当于
int i = 1;
printf("0x%x",&i);
对于32位的指针,输出一般会是类似0xf0001234之类的结果。
%p存在的理由除了附加前缀输出的便利性以外,如LS所说,指针的大小是不确定的,由实现决定。根据地址空间的大小,一般有16位、32位、64位的指针。尽管目前32位平台上的指针一般全是32位的,但旧的一些平台上可能有多种长度的指针(例如非标准的near、far、huge修饰的pointer)混用,无法用%x、%lx、%hx、%llx(对应int、long、short、long long)中的任意一种保证能输出所有类型的指针。
0 0
- C语言中的"%p"格式解释
- C语言中的%p
- C语言中的指针(*p p &p)
- 【C语言】*++p,*p++,++*p,++*++p,++*p++
- c语言中的格式符
- C语言中的格式控制
- C语言中的格式输出
- C语言中的输入输出格式
- C语言中的输出格式
- uint8_t C语言中的数据类型解释
- *p,&p,p在c中的区别
- c语言*p++
- c语言函数--P
- c语言中的 int (*p)[5] 类型分析
- C语言指针的*p++ ,*p(++), (*p)++,*++p的使用
- C语言指针的*p++ ,*p(++), (*p)++,*++p的使用
- C语言中的格式控制符
- C语言实现printf的基本格式输出%d,%c,%p,%s
- 从键盘上输入学生成绩,统计并输出最高成绩和最低成绩,当输入负数时结束输入。
- for循环的进化
- C#调用百度地图精确地址建议API
- c++ size_type类型详解
- 求水仙花数。
- C语言中的"%p"格式解释
- 题目1020题 最小长方形 九度Online Judge
- 二叉树后序遍历
- cxGrid使用汇总
- c:求不等式
- SQL Server 增加、删除、修改
- linux ssh远程登陆和文件传输
- block详解
- 输入4个数字字符,并把其转换为4位十进制数显示出来。