今天在网上看到一段程序
void main()
{
char ch=97;
int i=123456;
ch=i;
printf("%d/n",ch);
}
这段代码输出什么?
分析:这段程序先是定义了ch和i,然后将i赋值给ch,当然,这里存在强制类型转换。在将 i 赋值给 ch 的时候,先是将 i 转换成char型。因为i是int型,在x86上占两个字节,即16位。 i 的二进制表示是 11110001001000000,将它赋值给char时,会将它的高八位截断,即现在为01000000。因此,为64。