1 数据类型
逻辑类型。只有两个量true和false,表示逻辑真值和逻辑假值。
整数类型。包括char, short, int和long。
浮点类型。包括float和double。
void类型。主要用于说明不返回值的函数或指向任一类型的指针等。
1.1 数据类型分析
- bool
bool类型 <stdbool.h> _Bool基本类型
#include <stdio.h>
#include <stdbool.h>
int main(int argc, char *argv[]){
_Bool a;
// bool a;
a = true;
a = false;
a = -1;
if (a) {
printf("true %d\n",a);
}else {
printf("false %d\n",a);
}
return 0;
}
结果输出:true 1
上面a是非零数值,逻辑值为真,所以printf("true %d\n",a); true 1
- char类型
使用char数据类型的变量需要特别注意,防止数据超出值域,思考下列几个语句:
char c1= 128; //出错,数据越界(-128)
char c1= 129; //出错,数据越界(-127)
unsigned char c2= -1; //出错,数据越界(255)
- short类型<limits.h>
- int类型
- 浮点类型
- 强制数据类型的转换
//强制数据类型的转换是指采用某种方式将某种数据类型强制转换成指定的数据类型。
//包括显式的数据类型转换,和隐式的数据类型转换。
例如,
int a=22, b=0 ;
float c = 24.87, d= 3.3;
b = (int) (a + c +d) ; // b为50
//强制类型转换符后面的表达式如存在复杂运算,就一定要用小括号括起来
//强制类型转换符是一种不安全的转换,一般都是将高级类型转换成低级类型,要丢失数据的精度;
//强制类型转换并不改变表达式中变量的数据类型和其值