int a,b;
a=0000; b=0x1234;
a=(char)(b);
int a,b;
这句的功能是操作系统为变量a,b分别分配一块空闲的存储空间。以后使用a,b将相当于访问各自所对应的存储空间。
a = 0000;b = Ox1234;
这句的功能是把0000放到变量a所对应的存储空间,把0x1234放到变量b所对应的存储空间。
重点是下面这句a = (char)(b)
它的功能相当于修改变量a的值。具体是这样操作的:
从b所对应的存储空间中取出b的值即0x1234,然后把他转换成char类型,再然后将转换后的结果放到变量a所对应的存储空间,即覆盖掉原来的0000。
这个转换后的结果又是多少呢,是这样算的通常在C中int类型占4个字节
共4个字节。转换成char类型后,前3个字节丢弃,即结果是
0011 0100
共1个字节,对应的十进制是52
当语句a = (char)(b)执行完后,这1个字节的值也就是52就放到了变量a所对应的存储空间,而不是原来的0000了。