读书人

通过一个程序请问sprintf有关问题

发布时间: 2012-02-20 21:18:23 作者: rapoo

通过一个程序请教sprintf问题
main()
{
unsigned char c1 = 0x61 ;
charc2 ;
sprintf(&(c2), "%02x ",(unsigned char)c1) ;
printf( "%x\n ",c2) ;
}

最后的输出是36,为什么,内存中是怎样实现0x61到0x36的转化的?

[解决办法]
首先要注意的是上边代码有问题,内存越界了

其次要注意的是,sprintf对内存部分输出的是ascii码

0x61变成 "61 "

'6 '的ascii是0x36
因此就可以输出0x36

读书人网 >C语言

热点推荐