该章主要介绍两大数据类型:整数类型和浮点数类型。
在printf()中使用 %f 来处理浮点值,%.2f中的.2用于精确控制输出,指定输出的浮点数只显示小数点后面两位。
scanf("%f",&weight);
scanf()函数用于读取键盘的输入,%f说明读取的是浮点数,&weight告诉scanf()把输入的值赋给名为weight的变量。scanf()使用&找到名为weight的变量的地点。
_Bool 类型表示布尔值(true 或 false)
_Complex 和 _Imaginary分别表示复数和虚数。(注:复数包括实数和虚数)
字(word)是设计计算机时给定的自然存储单位,对于8位的微型计算机,一个字长只有8位。从那以后,个人计算机字长增至16位、32位,直到目前的64位。计算机的字长越大,其数据转移越快,允许的内存访问也越多。
在一个值后面加上小数点,该值就成为一个浮点值。比如7是整数,7.00是浮点数。
书写浮点数有多种形式,如e计数法。这里先做简要介绍:
3.16E7表示3.16乘以10的7次方。
浮点数表示的范围比整数大。
对于一些算数运算(如很大的两个数相减),浮点数损失的精度更多。
浮点数通常只是实际值的近似值,例如7.0可能被存储为浮点值6.99999。
过去,浮点数运算比整数运算慢,现在许多CPU都包含浮点处理器,缩小了速度上的差距。
C语言基本数据类型:
int类型:int类型是有符号整型,int类型的值必须是整数,可以是正整数、负整数和零。
一般而言,存储一个int要占用一个机器字长。如果系统是64位的,则int能表示的范围为-2^63~~2^63-1。
初始化(initialize)变量就是为变量赋一个初始值。在C语言中,初始化可以在声明中完成,例如
int fucker=20;
int stupid=5,cats=19;
但特别注意!!!!!!!!看下面这段代码!!!!!
int dogs,cats=94;
这段代码有效,但格式很糟糕,它只初始化了cats,而没有初始化dogs。容易让人误以为dogs也被初始化了,所以最好不要把初始化的变量和未初始化的变量放在同一条声明中。
printf(“%d,%o,%x”, , , );
d表示以十进制dec打印,o表示以八进制octal打印,x表示以十六进制hex打印。
若要在八进制和十六进制前显示0和0x前缀,要分别在转换说明中加入#。
除此之外还有short、long、long long、unsigned类型,此处不做过多赘述,之后可能会另开一章单独介绍。
char类型:用于存储字符(如字母和标点符号),但从技术层面来讲,char是整数类型。
char类型实际存储是整数而不是字符。在ASCLL码中,整数65代表大写字母A,因此存储字母A实际存储的是整数65。
标准ASCLL码的范围是0~127,只需要7位二进制数即可表示。通常char类型被定义为8位的存储单元,因此容纳标准ASCLL码绰绰有余。
char grade='A';
用单引号括起来的单个字符被称为字符常量(character constant)。编译器一发现'A',就会将其转换成相应的代码值。单引号必不可少。
char broiled;
broiled = 'T'; ##正确形式
broiled = T ; ##编译器认为T为变量名
broiled = "T"; ##编译器认为T为字符串