4、数据类型
目录
1. 基本类型
(1)数值类型
(2)字符类型
(3)布尔类型
2. 构造类型
3. 空类型
本文主要介绍基本数据类型。
1. 基本类型
基本类型也就是C语言中的基础类型,其中包括整型、字符型、浮点型(实型)、布尔型。
(1)数值类型
数值类型主要分为整型和实型(浮点类型)两大类。其中,整型按符号划分,可以分为有符号和无符号两大类;按长度划分,可以分为普通整型、短整型和长整型3类:
实型主要包括单精度型、双精度型和长双精度型:
在程序中使用实型数据时需要注意以下几点:
a.实数的相加
实型数据的有效数字是有限制的,如单精度float的有效数字是6位或7位,如果将数字86041238.78赋值给float类型,显示的数字可能是86041240.00,个位数8被四舍五入,小数位被忽略。如果将86041238.78与5相加,输出的结果为86041245.00,而不是86041243.78。
b.实数与零的比较
在开发程序的过程中,经常会进行两个实数的比较,此时尽量不要使用“==”或“!=”运算符,而应使用“>=”或“<=”之类的运算符,许多程序开发人员在此经常犯错,例如:
上述代码并不是高质量的代码,如果程序要求的精度非常高,可能会产生未知的结果。通常在比较实数时需要定义实数的精度。
利用实数精度进行实数比较,示例如下:
#include <stdio.h>
int main()
{
float eps = 0.0000001; //定义0的精度
float fvar = 0.00001;
if (fvar >= -eps && fvar <= eps) //超出精度
printf("等于0!\n", fvar);
else
printf("不等于0!\n",10);
}
运行结果:
(2)字符类型
字符数据使用“' '”来表示,如'A'、'B'、'C'等。定义字符变量可以使用char关键字,例如:
在计算机中字符是以ASCII码的形式存储的,因此可以直接将整数赋值给字符变量,例如:
输出结果为a,因为97对应的ASCII码为a
(3)布尔类型
在逻辑判断中,结果通常只有真和假两个值。C语言中提供了布尔类型bool来描述真和假。bool类型共有两个取值,分别为true和false。顾名思义,true表示真,false表示假。在程序中,bool类型被作为整数类型对待,false表示0,true表示1。将bool类型赋值给整型是合法的,反之,将整型赋值给bool类型也是合法的,例如
2. 构造类型
构造类型就是使用基本类型的数据,或者使用已经构造好的数据类型,进行添加、设计,构造出新的数据类型,使新构造的类型能满足待解决问题所需要的数据类型。通过构造类型的说明可以看出,它并不像基本类型那样简单,而是由多种类型组合而成的新类型,其中每一组成部分称为构造类型的成员。构造类型包括指针类型、枚举类型、数组类型、结构体类型、公用体类型和类类型6种形式。
3. 空类型
空类型的关键字是void,其主要作用在于如下两点:
a.对函数返回的限定。
b.对函数参数的限定。
也就是说,一般一个函数都具有一个返回值,将其值返回调用者。这个返回值应该是具有特定的类型,如整型int。但是当函数不必返回一个值时,就可以使用空类型设定返回值的类型。