你好哇,我是单字鹏。欢迎进入我的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
的相应运算器件内执行,

这篇博客主要探讨了C语言中数据如何从内存中读取,通过类型控制数据的存取,并分析了不同类型之间的转换,包括隐式类型转化。作者通过实例代码解析了有符号和无符号类型在内存读取时的差异,以及CPU如何处理不同大小的变量并进行赋值。
最低0.47元/天 解锁文章
6188

被折叠的 条评论
为什么被折叠?



