首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

不知道什么有关问题的有关问题

2012-04-28 
不知道什么问题的问题#includestdio.hvoid main(void){char c-5printf(%x\n,c)}输出0xfffffffb问题

不知道什么问题的问题
#include<stdio.h>


 
void main(void)

{
char c=-5;


printf("%x\n",c);


}
输出0xfffffffb

问题:char类型只用到一个byte,于是-5的补码为0xfb,输出应该是0xfb啊?为什么输出是0xfffffffb(VC下),是说明char占了4byte吗?是因为内存对齐?

[解决办法]
输出时被扩展为32位的了……
[解决办法]
是因为printf( "%x\n", c );中的%x默认是按32位,即8个16进制符来打印的,想要打印出0xfb,可以使用printf( "%02x\n", c )

热点排行