C语言,指针变量强制类型转换

2024-11-28 14:27:14
推荐回答(3个)
回答1:

在32位系统 里 CHAR占一个字节,INT*占4个字节,

你把原来一个字节的硬分配成4个字节的,那就把无用数据塞进 d里面去了

比如内存里(太久没弄,这些知识忘了很多,如有错误请见谅)

00   01   23   0a    00  10   23   00   
             | b |-------------------------本来B只占了这点内存
|          d     |-------------------------然后你硬把它分配给了4字节的D

里面多了3字节的无用数据,那就得到了一个让你莫名奇妙的数。

回答2:

已经转换了啊,里面的数就是这个垃圾值

回答3:

你的 char和int 混淆了