在c语言中pd和x"的区别p"是以16进制的形

2020-12-26 14:20:03 字数 5910 阅读 7969

1楼:匿名用户

%p用来输出指针

%x用来输入int 类型。

二者都是16进制值输出

如果是32位系统 那么没区别

如果是64位系统 那么 %p会输出8字节数据。 而%x只能输出4字节数据。

也就是说

32位系统 %p等效于%x

64位系统 %p等效于%lx

在c语言中%p,%d和%x的区别%p是以16进制的

2楼:糖糖又笑了

%p用来输出指针

%x用来输入int 类型。

二者都是16进制值输出

如果版是32位系统 那么没区别

如果是64位系统 那么 %p会输出8字节权数据。 而%x只能输出4字节数据。

也就是说

32位系统 %p等效于%x

64位系统 %p等效于%lx

在c语言中 %p ,%d和%x 的区别是什么?

3楼:娜lucky哈哈

%p 是以16进制的形式输出内存地址。

%x 也是以16进制的形式输出内存地址。

不过%p的输出字符为8个前2个为00。

%x只有6个。

%d 可以输出整数。

也可以以10进制的形式输出。

%d 是有符号。

%x 是无符号。

举个例子:

用8个2进制位表示-1为11111111转成无符号型就是2的9次方减1了。

%p是专用来处理指针的吧,而%x对打印的数据都可以,感觉差不多,就是用%p的时候打印出来都是8个数据的。

计算机存储的都是2进制,当然也可以用%d打印地址,打印指针,指针就是用来存放地址的

%u当然很大了,因为%d表示负数的时候(2进制)第1位是1。

4楼:匿名用户

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

在c语言中 %p ,%d和%x 的区别

5楼:匿名用户

%x不要前导0,也就说前面的0会被自动去掉也可以用%08x打印出来跟%p一样的

实际上是一样的,不过%p是专用来处理指针的吧,而%x对打印的数据都可以,感觉差不多,就是用%p的时候打印出来都是8个数据的

计算机存储的都是2进制,当然也可以用%d打印地址,打印指针,指针就是用来存放地址的

地址需要符号么-_-#

%u当然很大了,因为%d表示负数的时候(2进制)第1位是1,举个例子:

用8个2进制位表示-1为11111111转成无符号型就是2的9次方减1了

c语言中的%p和%x的区别

6楼:匿名用户

1、输出

的类型不同:

%p用来输出指针的值、输出地址符。指针,是一个无符号整数(unsigned int),它是一个以当前系统寻址范围为取值范围的整数。而%x, %x 输出无符号以十六进制表示的整数。

2、输出的结果会有不同:

32位系统下寻址能力(地址空间)是4g bytes(0~2^32-1)二进制表示长度为32bits(也就是4bytes), unsigned int类型也正好如此取值,%p用来输出地址符时,结果是32位的。p 对应于指针类型,返回的值是指针的地址,以十六进制的形式来表示。

例如:format("this is %p",p); 返回的是:this is 0012f548

7楼:

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

示例:int i = 1;

printf("%p",&i);

相当于int i = 1;

printf("0x%x",&i);

对于32位的指针,输出一般会是类似0xf0001234之类的结果。

8楼:匿名用户

16位和32位机 没区别

64位机 %p输出8字节 最多16位16进制数%x输出按int 实际4字节,最多8位16进制数也就是说 如果输出地址 用%x在64位机器上会出错。

9楼:找你惹你

%p为16进制数, 长度由当前操作系统决定, 32位系统长度就为32bit, 64位系统长度为64bit

%x为16进制数, 长度为32bit

c语言中%p是什么意思?

10楼:人设不能崩无限

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

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

11楼:匿名用户

c语言中%p用来输出指针类型自身的值。

也就是说 %p用来输出地址。

一、使用方法:

%p一般仅用于printf及同类函数中。形式为printf("%p", varp);

其中后续参数varp为某一个指针变量。如

inta,*p;

p=&a;

printf("%p%p",p,&a);

这里输出的p和&a都是int*型。

二、功能:

%p格式符会输出指针本身的值,也就是指针指向的地址值。

该输出为16进制形式,具体输出值取决于指针指向的实际地址值。

三、与%x区别:

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

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

所以用%p输出地址,相对于用%x输出,可以有更好的移植型和适应性,不会因为更换平台而引起错误。

12楼:手机用户

以16进制输出指针内存储的地址

%hd: 输出short类型变量

c语言%p的含义

13楼:魔方格的故事

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

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

测试** :

#include

int main()

;int i = 0;

printf("数据:\n\n");

printf("十进制表示的数据:\n");

for(i = 0 ; i < 5 ; i++)

printf("\n\n指针形式十六进制表示的数据:\n");

for(i = 0 ; i < 5 ; i++)

printf("\n\n普通十六进制表示的数据:\n");

for(i = 0 ; i < 5 ; i++)

for(i = 0 ; i < 5 ; i++)

for(i = 0 ; i < 5 ; i++)

for(i = 0 ; i < 5 ; i++)

printf("\n");

}输出结果

c是一种通用的编程语言,广泛用于系统软件与应用软件的开发。于1969年至1973年间,为了移植与开发unix操作系统,由丹尼斯·里奇与肯·汤普逊,以b语言为基础,在贝尔实验室设计、开发出来。

c语言具有高效、灵活、功能丰富、表达力强和较高的可移植性等特点,在程序设计中备受青睐,成为最近25年使用最为广泛的编程语言[2]。目前,c语言编译器普遍存在于各种不同的操作系统中,例如microsoft windows、macos、linux、unix等。c语言的设计影响了众多后来的编程语言,例如c++、objective-c、java、c#等。

二十世纪八十年代,为了避免各开发厂商用的c语言语法产生差异,由美国国家标准局为c语言订定了一套完整的国际标准语法,称为ansi c,作为c语言的标准。二十世纪八十年代至今的有关程序开发工具,一般都支持匹配ansi c的语法。

14楼:

%p表示输出这个指针。更具体用法可参考百度百科的词条printf

printf

功 能:

产生格式化输出的函数

用 法:

int printf(const char *format,[argument]);

format 参数输出的格式,定义格式为:

%[flags][width][.perc] [f|n|h|l]type

(中的内容表示是可根据实际需要选择的,实际使用时不用加,type即是你看到的%p对应的p)

规定数据输出方式,具体如下:

1.type 含义如下:

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 显示一个指针,near指针表示为:***x

far 指针表示为:***x:yyyy

n 相连参量应是一个指针,其中存放已写字符的个数

15楼:匿名用户

这里的%p跟%x不一样的,%x表示输出的值为十六进制的意思,%p是指向变量的地址,

16楼:曹糯糯

%p 表示pointer address 格式为 0000:0000 16进制表示中间用冒号隔开

%x只是输出16进制数,没有分隔符

17楼:匿名用户

%d %i decimal signed integer.

%o octal integer.

%x %x hex integer.

%u unsigned integer.

%c character.

%s string. see below.

%f double

%e %e double.

%g %g double.

%p pointer.

%n number of characters written by this printf.

no argument expected.

%% %. no argument expected.

p 显示一个指

针,near指针表示为:***x

far 指针表示为:***x:yyyy

c语言中16进制在整型常量中表示用0还是

1楼 匿名用户 在c语言中16进制常量可以使用0x也可以使用0x如果使用0x的方式,那么在超过9的表示方式需要使用a f如果使用0x的方式,那么在超过9的表示方式需要使用a f同样,在输出方式中 x表示采用小写输出, x采用大写输出 2楼 我的账号很强大 2者都行,c里16进制数的写法,不区分大小写...

c语言中的在前"和在后"的区别是什么

1楼 運命 抗 在前是先加1在运算, 在后面是先运算在加1例子如下。 int i 0 printf d i i加了1才给传递参数,所以输出是1i 0 printf d i 前传递参数,所以还是输出原来的值是0printf d i 因为上面那句加了1所以 输出是1 在c语言中, 放在前面和后面有什么区...

c语言中数组名和指针变量的区别,C语言中数组名和指针的区别

1楼 销 数组名除了sizeof会返回数组大小,其他的实况下是相当于一个指针常量无区别的 指针常量也就是说,不能改变数组名的值,比如int a 10 a a a a 10等都是非法的 c语言中数组名和指针的区别 2楼 匿名用户 数组在当作参数传递时,可以当作指针 当然,参数传递相当于赋值操作,所以用...