char 型地址问题

来源:百度知道 编辑:UC知道 时间:2024/06/25 19:51:15
#include <stdio.h>
void main()
{
char a ;
char *p = &a;
printf("%d",p);
}
输出是:"1245052 " 这是代表什么呢,是十六进制呢,还是代表其它的呢???为什么只有七位数字呢?

是a的地址。

printf("%d",p); 输出格式 %d 是十进制数。

如果想输出16进制数,要用格式 %x

printf("%08x",p); -- 8位16进制数,不足8位则添0

只有七位数字,因为分配给a的地址换算成十进制,只有7位。

地址,要输出字符,用printf("%d",*p);

输出的似乎是a的地址吧……

地址

输出的似乎是a的地址。

2 分,走人。