格式控制符的% p是打印什么的?

作者&投稿:帛所 (若有异议请与网页底部的电邮联系)
~

格式控制符“%p”中的p是pointer(指针)的缩写。指针的值是语言实现(编译程序)相关的,但几乎所有实现中,指针的值都是一个表示地址空间中某个存储器单元的整数。printf函数族中对于%p一般以十六进制整数方式输出指针的值,附加前缀0x。

%p是打印地址的, %x是以十六进制形式打印, 完全不同!另外在64位下结果会不一样, 所以打印指针老老实实用%p 。

扩展资料:

%x同样输出16进制形式,不过%x对应的是int型,也就是说,其输出长度与系统int型占的字节数相等回。如32位编译器,int型占4位字节,那么%x输出的结果最多为16个16进制字符。

而%p输出宽度取决于系统地址总线位数,即16位最多输出4位16进制字符,32位最多输出8位16进制字符,64位最多输出16位16进制字符。




西工区19722515784: C语言%p是输出该变量的地址还是输出该变量储存的地址? -
拱急通宣: 格式控制符“%p”中的p是pointer(指针)的缩写.指针的值是语言实现(编译程序)相关的,但几乎所有实现中,指针的值都是一个表示地址空间中某个存储器单元的整数.printf函数族中对于%p一般以十六进制整数方式输出指针的值,附加前缀0x.示例:int i = 1;printf("%p",&i);相当于int i = 1;printf("0x%x",&i);

西工区19722515784: C语言中 %p是什么输出限制符? -
拱急通宣: 输出指针时内容,即输出指针所指向的内存地址的时候,用%p

西工区19722515784: c语言里面在printf里面写一个%p代表什么
拱急通宣: p转换.参数应为void *类型,按实现定义格式打印.对大多数计算机,可能与o,x或X转换产生的格式相同.这个转换操作符在标准C语言中提供,但并不常使用.

西工区19722515784: C语言 指针 printf("%p\n",a)中%p什么意思 -
拱急通宣: 这里的%p表示输出的格式转换为指针,该语句是输出a的地址. 其他转换说明符 %a(%A) 浮点数、十六进制数字和p-(P-)记数法(C99) %c 字符 %d 有符号十进制整数 %f 浮点数(包括float和doulbe) %e(%E) 浮点数指数输出[e-(E-)记数法] %g(%G) 浮点数不显无意义的零"0" %i 有符号十进制整数(与%d相同) %u 无符号十进制整数 %o 八进制整数 e.g. 0123 %x(%X) 十六进制整数0f(0F) e.g. 0x1234 %p 指针 %s 字符串 %% "%"希望对你有所帮助.

西工区19722515784: C语言里%p打印出的是什么值啊? -
拱急通宣: 我用5个数试的,运行时没显示出想要的效果,写上打印average 也都显示0.000000 帮忙看看怎么改?(要测试好用的) 完整的代码是这样的.为了避免

西工区19722515784: C语言%p的含义 -
拱急通宣: %p表示输出这个指针.更具体用法可参考百度百科的词条printf printf 功 能: 产生格式化输出的函数 用 法: int printf(const char *format,[argument]); format 参数输出的格式,定义格式为: %[flags][width][.perc] [F|N|h|l]type ([]中的内容表示是可根...

西工区19722515784: printf 函数中 %p 是什么意思? -
拱急通宣: %p 表示输出的结果是 指针楼上好像说错了,%x不是地址给你个详细的吧! printf: 转换说明符 %a 浮点数、十六进制数字和p-计数法(C99) %A 浮点数、十六进制数字和P-计数法(C99) %c 一个字符 %d 有符号十进制整数 %e 浮点数、e-...

西工区19722515784: 在c语言中%p表示的是什么数据类型啊? -
拱急通宣: %p,%d,%f等等级这些都是格式字符串,%p表示要输出变量的地址. 比如printf("%p",a);就表示输出a的地址,

西工区19722515784: %p在c语言中是不是地址控制符,因为在这个程序中输出的好像是地址.请高手解释一下,不胜感激....
拱急通宣: %p表示指针的值,也就是地址.不过为什么用%p呢?因为各种编译器(操作系统)地址长度不一样,有8位的老机器,也有16位的、32位的和最新64位的,所以用%p表示打印地址,根据当前操作系统(编译器)对地址长度的定义打印地址.

西工区19722515784: 在c语言中 %p ,%d和%x 的区别 -
拱急通宣: %x不要前导0,也就说前面的0会被自动去掉 也可以用%08x打印出来跟%p一样的 实际上是一样的,不过%p是专用来处理指针的吧,而%x对打印的数据都可以,感觉差不多,就是用%p的时候打印出来都是8个数据的 计算机存储的都是2进制,当然也可以用%d打印地址,打印指针,指针就是用来存放地址的 地址需要符号么-_-# %u当然很大了,因为%d表示负数的时候(2进制)第1位是1, 举个例子: 用8个2进制位表示-1为11111111转成无符号型就是2的9次方减1了

你可能想看的相关专题

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网