基本数据类型
- 逻辑类型。只有两个量true和false,表示逻辑真值和逻辑假值。
- 整数类型。包括char, short, int和long。
- 浮点类型。包括float和double。
- void类型。主要用于说明不返回值的函数或指向任一类型的指针等。
bool类型 <stdbool.h> _Bool基本类型 底层是 0 和 非0
char类型
char(sigend char) 长度 1 值域 -128~127
unsigend char 长度 1 值域 0~255
short类型<limits.h>
short(sigend short) 长度 2 值域 -32768~32767
unsigend short 长度 2 值域 0~65535
int类型
int(sigend int) 长度 4 值域 -2147483648~2147483647
unsigend int 长度 4 值域 0~4294967295
long类型
long(sigend long) 长度 4 值域 -2147483648~2147483647
unsigend long 长度 4 值域 0~4294967295
浮点类型
float 长度 4 值域 1.175494352e-38~3.402823466e+38
double 长度 8 值域 2.2250738585072014e-308~1.7976931348623158e+208
强制数据类型的转换
强制数据类型的转换是指采用某种方式将某种数据类型强制转换成指定的数据类型。包括显式的数据类型转换,和隐式的数据类型转换。
例如,
int a=22, b=0 ;
float c = 24.87, d= 3.3;
b = (int) (a + c +d) ;
变量的说明
变量说明的一般形式是:
<存储类型> <数据类型 > <变量名> ;
<存储类型>是关键词auto、register、static和extern
auto说明的变量只能在某个程序范围内使用,通常在函数体内或函数中的复合语句里。(默认是随机值)
在函数体的某程序段内说明auto存储类型的变量时可以省略关键字auto,
auto int k ;
int j ;
double x;
register称为寄存器型,register变量是想将变量放入CPU的寄存器中,这样可以加快程序的运行速度。
如申请不到就使用一般内存,同auto ;
static变量称为静态存储类型的变量,既可以在函数体内,也可在函数体外说明。(默认是0)
局部变量使用static修饰,有以下特点:
在内存中以固定地址存放的,而不是以堆栈方式存放
只要程序没结束,就不会随着说明它的程序段的结束而消失,它下次再调用该函数,该存储类型的变量不再重新说明,而且还保留上次调用存入的数值。
extern:当变量在一个文件中的函数体外说明,所有其他文件中的函数或程序段都可引用这个变量。
extern称为外部参照引用型,使用extern说明的变量是想引用在其它文件中函数体外部说明的变量。
<数据类型>可以是基本数据类型,也可以是自定义的数据类型