目录
我们为什么要写代码呢?是为了希望计算机能够帮助解决我们生活中的问题。我们希望方便沟通,就出现了微信,希望方便购物,就出现了京东淘宝...计算机最基本且最关键的功能便是存储并处理数据,微信淘宝也是在处理数据之上建立起来的,我们为了能够方便处理生活中的各种各样的数据(比如身高、体重、电话号码等等),就引出了数据类型这样的概念。
char //字符数据类型
short //短整型
int //整型
long //长整型
long long //更长的整型
float //单精度浮点数
double //双精度浮点数
以上就是我们C语言中常见的数据类型。
为什么会出现这么多的数据类型呢?
如果我们只用一种类型来存储数据岂不是更好,为什么要建立这么多种数据类型来自取其扰呢?更有甚者,居然把整数又给细化分为短整型,整型,长整型以及更长的整形。为解答这个问题,我们先来看一下每种类型所创建的空间在内存中所占的大小。
查看每种类型所创建空间的大小
查看所占空间的大小,我们需要借助sizeof()关键字来帮助我们。
#include<stdio.h>
int main(){
printf("%d\n",sizeof(char));
printf("%d\n",sizeof(short));
printf("%d\n",sizeof(int));
printf("%d\n",sizeof(long));
printf("%d\n",sizeof(long long));
printf("%d\n",sizeof(float));
printf("%d\n",sizeof(double));
return 0;
}
最后,我们看到输出的结果是:1 2 4 4 8 4 8。这些数字是什么意思呢?是一头牛,一匹马,还是一座房子?实际上,它的单位是字节。意思是说char占用的存储空间是1个字节,int占用的存储空间是4个字节。那么字节又是什么鬼呢?字节是计算机中的内存单位。下面我再详细描述一下计算机的单位。
sizeof()表示的是所占存储空间的大小,单位是byte
计算机中的单位
在我们计算机中,最小的单位是比特位(bit),再往上就是字节(byte),有一家公司叫做字节跳动Byte Dance,抖音今日头条都是该公司旗下的产品,接下来便是我们生活中常见的kb、mb、gb、tb、pb。
1.众所周知,计算机是一个硬件,需要通电,分为正电和负电,正好对应1/0二进制位,所以,我们计算机存储和处理的就是二进制,那么一个bit的空间我们可以存储一个二进制位(也就是0/1)。
2.1个byte=8bit,也就是可以存放8个二进制位,比若说01001011就是1个字节。
3.1kb=1024byte=2^10byte,1mb=1024kb=2^10kb,越往上也是如此,不再一一赘述。
4.C语言规定,sizeof(long)>=sizeof(int),所以我们经常见到sizeof(long)为4或者8。
这样我们就了解了这些数据类型的存储大小,我们以int举例:
int是4个字节,也就是32个bit
00000000000000000000000000000000
00000000000000000000000000000001
00000000000000000000000000000010
00000000000000000000000000000011
......
11111111111111111111111111111111
这样,我们可以得知1个int我们可以存储2^32种数字,同理,1个short(2个字节)我们可以存储2^16种数字。由此可见,每种数据类型所占的存储空间不一样。在我们早期的计算机中,存储空间很小,内存是很珍贵的,能省则省,所以我们给数据分配合适的存储空间,就好比说人的年龄不会超过200岁,使用int类型开辟存储就显得有些大材小用了。
数据类型的使用
//数据类型 变量名=初始值
char ch='w';
int weight=100;
int salary=200000;
以上述代码第一个char类型举例,它的意思代表的是:向计算机 用char字符数据类型 申请一块1个字节的存储空间,并为该空间取名为ch,并在该空间内存储‘w’。
总结
存在这么多数据类型,其实是为了更加丰富的表达生活中的各种值。