之前说过,写代码是为了解决生活中的问题,比如购物。
假设我们想买一本书。 它的价格是10.5,是小数,也可以是整数10。它的标题是《钢铁是怎样炼成的》,是一组字符串,像svli@gikvw,每个字符串称为字符。
我们需要使用C语言来存储这些信息,以便能够用C语言来描述这些类型。
只是将小数抽象成一种数据类型,称为浮点类型
将整数抽象为一种数据类型,称为整数(上一篇博客中的int)
将字符抽象成一种数据类型,称为字符
10.5 - 十进制 - 浮点
10 - 整数 - 整数类型
A-字符-字符
那么C语言抽象出了哪些数据类型呢?
char //字符数据类型
Short //短整型
int //整数类型
long //长整数类型
long long //更长整型
float //单精度浮点数
//双精度浮点数
//浮点类型10.5
//整数类型10
//字符A
看完上面的数据类型,很容易看出以下关系:
为什么它们被称为浮点数?
就像66.6和6.66*10一样,小数点可以浮动,所以称为浮点数。
那么,为什么上面有这么多类型呢? 我们首先需要回答以下问题:
每种类型的尺寸是多少?
稍后我们用代码询问它们各自的大小。
首先学习新东西
#includeint main() { printf("%d\n",100)// return 0;}
这个%d指的是打印(输出)的格式,即整数类型。 下面的100是返回值,即打印100。 \n的意思是回车,空行的意思是,如图:
运行结果:
100
现在我们来解释一下\n的作用。 下面是两组代码进行比较:
第一组
#includeint main() { printf("%d\n",100)// printf("%d\n",100) printf("%d\n",100) return 0;}
运行结果:
100
100
100
第二组
#includeint main() { printf("%d",100)// printf("%d",100) printf("%d",100) return 0;}
运行结果:
可见\n的作用是清空一行,也就是通常的enter的作用。
接下来是
#includeint main() { printf("%d ", sizeof(char)); printf("%d ", sizeof(short)); printf("%d ", sizeof(int)); printf("%d ", sizeof(long)); printf("%d ", sizeof(long long)); printf("%d ", sizeof(float)); printf("%d ", sizeof(double)); return 0; }
运行结果:
1 2 4 4 8 4 8
(那么这些数字是什么意思?它们如何表示占用内存的大小?我们稍后会解释。)
这里()的作用是返回char数据类型在内存中的大小。 通俗点就是用它来告诉你char数据类型占用了多少内存。
但是,这里使用 %d 是不合适的。 在某些编译器中,会报告警告。 对于我们来说使用%zu是最合适的,返回值必须用%zu来打印。
int main() { printf("%zu\n", sizeof(char)); printf("%zu\n", sizeof(short)); printf("%zu\n", sizeof(int)); printf("%zu\n", sizeof(long)); printf("%zu\n", sizeof(long long)); printf("%zu\n", sizeof(float)); printf("%zu\n", sizeof(double)); return 0; }
结果和上图一样。 运行结果为:
(我在里面加了\n,所以是一行一行的)
接下来我们来说一下上面数字的含义,
您只能看到这些数字,但看不到单位。 事实上,它们都有单位。 下面我们就来了解一下计算机的单位:
计算机的单位从大到小分别是PB、TB、GB、MB、KB、字节。就像我们日常生活中使用的流量一样,一般套餐最大也只有GB,所以我们已经很熟悉GB、MB了和知识库。 下面是各个单位之间的换算。
1Pb=
1Tb=
1GB=
1MB=
1kb=(字节)
1byte=8bit(位)
看完这些,你可能对这些还没有什么概念。 让我们更多地了解他们。
我们都知道计算机使用二进制语言,而我们生活在十进制的世界,
让我们给一个空间| |,可以填1或0,即|1| 或|0|。 这是一个位,对应着灯的亮和灭。
那么一个字节呢?
|1| |0| |1| |0| |0| |1| |0| |1| 占用8个空格,即8位
对应的十进制值为165
一个字节可以存储多大的数字?
对应的十进制是255,也就是说最多可以存储2^8-1个数字。
我们可以感觉到单位向后逐渐变大
解释完计算机的单位,我们再回到上面的1 2 4 4 8 4 8,它们的单位都是字节。
char对应1个字节,可以开辟一个可以存储2^8-1的空间
Short对应2个字节,可以开辟一个可以存储2^16-1的空间
int对应4个字节,可以开辟一个可以存储2^32-1的空间
long long对应8个字节,可以开辟一个可以存储2^64-1的空间
里面的float和sum是用来存储小数的。 双精度浮点数比单精度浮点数稍微精确一些。 这将在未来的博客中更深入地解释。
但是我们知道为什么int和long都是4吗?
C语言规定(long)>=(int)即可,但不会超过(long long)
那么我们回到前面提出的问题,为什么要指定这样的数据类型呢? 答案是节省空间:
给你一个数字 2。你想存储它。 你用了long long数据类型,开辟了一个可以存放2^64-1的空间来存放这个2,是不是有点大材小用了? 只需使用一个字符即可。 提高空间利用率
接下来我们解释一下下面的代码来介绍下一篇博客中讨论的变量和常量
#includeint main() { int age=18; double weight=16.5; return 0; }
整数年龄=18;
在内存中申请一块int大小的空间,将数据18放入变量age中。 通俗地说,int 请求一个房间,命名为age(随便起个名字),然后把18 放进去。
=16.5;
这与上面相同。 它是一种数据类型和变量。 16.5 是小数。
这些数据类型用于定义变量
这篇关于适合初学者的C语言数据类型讲解的文章到此结束。 有关C语言数据类型的更多信息,请搜索 House之前的文章或继续浏览以下相关文章。 我希望你以后能读更多的书。 支持脚本之家!