通过一个程序请教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