在32位系统 里 CHAR占一个字节,INT*占4个字节,
你把原来一个字节的硬分配成4个字节的,那就把无用数据塞进 d里面去了
比如内存里(太久没弄,这些知识忘了很多,如有错误请见谅)
00 01 23 0a 00 10 23 00
| b |-------------------------本来B只占了这点内存
| d |-------------------------然后你硬把它分配给了4字节的D
里面多了3字节的无用数据,那就得到了一个让你莫名奇妙的数。
已经转换了啊,里面的数就是这个垃圾值
你的 char和int 混淆了