在之前的几节种,我们已经知道计算机如果想“记住”某个值,就必须在计算机的大脑“摩天大厦”中,申请一个小房子例如:
int a,b,c;
就是申请三个小房子分别叫做a,b和c。这三个小房子只能够用进来存放整数(整型数据)。
再例如:
float a,b,c;
就是申请三个小房子a,b和c。这三个小房子只能够用来存放小数(浮点型数据)。
也就是说在计算机中,不同的类型数据需要相应类型的小房子来存储。
那么计算机一共有多少种类型的房子呢?我们来例句几个最常用的:
好了,目前为止
首先说明一下float和double的区别。
请观察下面两段代码
代码1:
#include <stdio.h>
#include <stdlib.h>
int main()
{
float a;
a=3.141592653897932;
printf("%.15f",a);
return 0;
}
代码2:
#include <stdio.h>
#include <stdlib.h>
int main()
{
double a;
a=3.141592653897932;
printf("%.15lf",a);
return 0;
}
我们观察一下代码1和代码2的不同之处有两点。代码1中是用float来申请小房子a,在输出是相对于的占位符是%f,其中“%”和“f”之间的“.15”表示的是保留小数点后15位(四舍五入)。代码2中是用double来申请小房子a,在输出是相对应的是占位符%lf,注意吃醋不是数字“1”而是字母“l”,同样“%”和“lf”之间的“.15”表示的是保留小数点后15位(四舍五入)。
他们 的运行结果分别是如下:
代码1运行结果:
代码2运行结果:
怎么样,你发现问题了吧,代码1运行后输出的是3.141592741012573,显然小数点后第7位开始就不对了,二代码2运行后输出的是3.141592653589793,完全正确。因此我们可以发现double比float可以表示的更精确。另外float和double表示的素的大小范围也不同。
在表中,我们发现有一个新的数据类型“char”,用char申请出来的小房子是用来存放支付的。如下:
#include <stdio.h>
#include <stdlib.h>
int main()
{
char a;
scanf("%c",&a);
printf("你刚才输入的字符是%c",a);
return 0;
}
我们输入一个字符“x”后点击回车,结果如下图,当然你也可以尝试一下别的字符。
想一想,对于上面这段代码,如果此时你输入的不是一个字母,而是一串字母计算机会输出什么呢?很抱歉,计算机只会输出你输入的第一个字母。
有的童鞋可能要问拉,如果想存储一大串字符改怎么办呢?不要着急,我们将在后续的章节中介绍如何存储一个字符串。
在学习中有不懂迷茫的童鞋们可以加我一起交流学习,无论你是大牛还是小白,是想转行还是想入行都可以来了解一起进步一起学习!