c语言类型转换

时间:2017-03-03 16:09:50

标签: pointers casting char int type-conversion

我无法理解这个简单的c代码的输出。当我们将一个int值转换为char指针时会发生什么?

int main(void) {
int a =320;
char *ptr;
ptr=(char *)&a;
printf("%d",*ptr);  
return 0;
}

输出是64.但我无法弄清楚逻辑。签名字符的大小在这里发挥作用吗?

1 个答案:

答案 0 :(得分:1)

320是ave十六进制。 char是一个字节(两个十六进制数字),因此使用0x140进行转换和打印将打印%d的十进制值,恰好是64。