你好哇,我是单字鹏。欢迎进入我的C语言总结。
前面我们总结了数据是如何通过类型变量保存在内存中的,今天我们来总结梳理数据是如何从内存中拿出来的。
先来看看这样一段代码
#include <stdio.h>
#include <stdlib.h>
void* test()
{
void* pt = malloc(4);
*((float*)pt) = 9.0;
return pt;
}
int main()
{
short* ch = test();
int* in = (int*)ch;
float* fl = (float*)in;
printf("%p %p %p\n", ch, in, fl);
printf("%d %d %f\n", *ch, *in, *fl);
return 0;
}
为什么是这样的结果了 ?
不妨用已有的知识来分析看看
总结数据通过类型来访问内存保存数据,也可以控制类型来读取内存的数据。
不同类型的转换
隐式类型转化
C
的整型算术运算总是至少以缺省整型类型的精度来进行的。
为了获得这个精度,表达式中的字符和短整型操作数在使用之前被转换为普通整型,这种转换称为
整型
提升
。
整型提升的意义
:
表达式的整型运算要在
CPU
的相应运算器件内执行,