总结: c语言中的数据类型的本质,就是决定了这个数在内存中怎么存储的问题,也就是决定了这个数如何转成二进制的问题。一定要记住的一点是内存只是存储1010的序列,而不管这些1010怎么解析。所以要求我们平时数据类型不能瞎胡乱搞。
分析几个题目:
(1) 按照int类型存却按照float类型取 一定会出错
(2) 按照int类型存却按照char类型取 有可能出错也有可能不出错大
(3) 按照short类型存却按照int类型取 有可能出错也有可能不出错
(4) 按照float类型存却按照double取 一定会出错
#include <stdio.h> void main() { int a = 5; int* p = &a; float* p1; p1 = (float* )p; printf("p = %f\n",p); //输出奇怪的数字 printf("p = %d\n",p); printf("p = %x\n",p); printf("p = %p\n",p); printf("p1 = %d\n",p1);//输出奇怪的数字 }
原文:https://www.cnblogs.com/sanshijvshi/p/10290103.html