一、数据类型的分类

二、基本数据类型
- 逻辑类型。只有两个量true和false,表示逻辑真值和逻辑假值。
- 整数类型。包括char, short, int和long。
- 浮点类型。包括float和double。
- void类型。主要用于说明不返回值的函数或指向任一类型的指针等。
1、逻辑类型
bool类型 <stdbool.h> _Bool基本类型
非零(true)
零(false)
查看头文件的位置,可以通过预处理命令获取:
linux@linux:~ gcc -E 04.bool_test.c -o bool_test.i
查看bool_test.i
文件内容即可。
2、整数类型
- char类型
使用char数据类型的变量需要特别注意,防止数据超出值域,思考下列几个语句:
char c1= 128; //出错,数据越界(-128)
char c1= 129; //出错,数据越界(-127)
unsigned char c2= -1; //出错,数据越界(255)
3、浮点类型

三、强制数据类型转换
强制数据类型的转换是指采用某种方式将某种数据类型强制转换成指定的数据类型。包括显式的数据类型转换,和隐式的数据类型转换。
如:
#include <stdio.h>
int main(){
int a=20, b=0;
float c=1.23, d=2.3;
b = (int)(a+c+d);
printf("b=%d\n", b); //b=23
return 0;
}
- 强制类型转换符后面的表达式如存在复杂运算,就一定要用小括号括起来
- 强制类型转换符是一种不安全的转换,一般都是将高级类型转换成低级类型,要丢失数据的精度;
- 强制类型转换并不改变表达式中变量的数据类型和其值。