在接下来对C语言的学进阶习中我们需要对c语言的数据在内存中存储的方式有进一步的了解
C语言有一些基本的数据类型,这些类型是编译器自带的类型,如:


成都创新互联是一家从事企业网站建设、
网站建设、网站制作、行业门户网站建设、网页设计制作的专业的建站公司,拥有经验丰富的网站建设工程师和网页设计人员,具备各种规模与类型网站建设的实力,在网站建设领域树立了自己独特的设计风格。自公司成立以来曾独立设计制作的站点成百上千。这些不同数据类型的存在,可以让我们处理数据更方便、更准确。


int 类型可以分配4个字节的空间


我们也可以自定义一些类型

指针有着多种类型,具体类型应当与它指向的变量一致


我们输入的各种数据会根据它的数据类型在内存中以2进制码的形式储存,在二进制的储存形式下计算机可以巧妙地完成各种数据操作 ,比如类型强制转换、int型数据加减乘除等等。



尽管CPU只能执行加法,但只要内存存储补码就可以通过巧妙的机制像变魔术般实现加减乘除的操作与类型强制转换 。

在我们查看输入数据的存储时会发现数据储存的二进制码不是按照我们的输入顺序去存储,而是两个为一组 逆序存储,这是因为数据存储有大端存储和小端存储两种存储模式,这两种存储模式没有高低优劣之分。


大小端是电脑处理器决定的,我们可以通过一段代码来测试出电脑处理器类型:
//代码1
#includeint check_sys()
{
int i = 1;
return (*(char *)&i);
}
int main()
{
int ret = check_sys();
if(ret == 1)
{
printf("小端\n");
}
else
{
printf("大端\n");
}
return 0;
}
//代码2
int check_sys()
{
union
{
int i;
char c;
}un;
un.i = 1;
return un.c;
}
浮点型与整形在进入内存时转换的机制方式完全不同



浮点数采用了一套独立机制存储

由于浮点数的特殊存储机制 ,浮点数有些人为规定的特殊规定





最后做个总结,数据类型差异的存在与存储时的各种变换机制是为了在CPU只能进行加法运算的条件下实现其他运算的巧妙解决方案。理解这些有利于我们更好的处理数据问题。
你是否还在寻找稳定的海外服务器提供商?创新互联www.cdcxhl.cn海外机房具备T级流量清洗系统配攻击溯源,准确流量调度确保服务器高可用性,企业级服务器适合批量采购,新人活动首月15元起,快前往官网查看详情吧
分享文章:2023.1.3指针进阶(1)-创新互联
转载来源:
http://njwzjz.com/article/iecih.html