C 语言的基本数据类型

C 语言的基本数据类型

注:本文面向 C 语言初学者,如果你是熟手,那就不用看了。

有人问我,char、short、int、long、float、double 等这些关键字到底是什么意思,如果说他们是数据类型的话,那么为啥有这么多数据类型呢?

如果写了一句:

int a;

那么执行的时候在内存中会有什么变化呢?

橡皮泥大家都玩过吧,一般你买橡皮泥的时候,店家会赠送一些模板。

在这里插入图片描述

上图就是我在某宝的截图,看见右下角的模具了吧,不同的模子,印出来的图案不一样,可以是城堡、金字塔、海星……

C 语言中的数据类型就和这些模子一样,不同的模子对应的内存大小不一样。

就拿 32 位系统来说, char 类型就是 1 字节;int 类型就是 4 字节; double 类型就是 8 字节。各种类型都有一个对应的字节数,具体是多少你可以用 sizeof 关键字测一下,因为不同的平台可能不一样。

有人问,啥是内存啊?

炒菜你会吗?炒菜总要有个锅吧,就是铁板烧也要有个铁板吧,如果说锅是厨师加工菜品的地方,那么内存就是 CPU 加工数据的地方。虽然 CPU 里面有寄存器,但是寄存器特别少,所以很多数据要放到内存里,用的时候再调到寄存器。

简单来说,内存就是一个临时存储器,运行程序时,各种变量都会被放在内存中,然后 CPU 来操纵它们,比如读、写、修改。

内存一般按照字节来组织,字节是最基本的存储单元。一个字节是 8 个 bit,可存储的数据范围是 0-255;

如果你在代码中写了:

int a;

...
    
char b;

假设是 32 位的平台,那么内存视图类似下图:

在这里插入图片描述

右边一个小格子代表一个字节,变量 a 占了 4 个字节,用绿色表示;变量 b 占用了1 个字节,用蓝色表示。左边的连续 8 个小格子代表 1 个字节可存储 8 个 bit。

对一个变量赋值,就是修改它占用的内存。

当你在程序中写 int a = 100;

在执行这句话的时候,计算机干了两件事。一是在内存的空闲区域找连续的 4 个字节,从此,这 4 个字节就和变量 a 联系起来了,可以说,a 就代表了这块内存区域;二是把这个区域的值修改为 100。

以后你对 a 的任何操作,都是对这片内存的操作。这 4 个字节就是 a 的一亩三分地。

【End】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值