1. 数据类型
1.1 基本数据类型
1.1.1 bool类型
bool为布尔型用于逻辑判断,长度只有一个字节,取值范围为false和ture(0为false,非0为ture)
代码如下:
#include<stdio.h>
#include<stdbool.h>
int main(){
bool a; //定义bool变量
a=false;
if(a){ //假如a成立
printf("true %d\n",a);
}
else{
printf("false %d\n",a);
}
return 0;
}
运行结果:true 1
1.1.2 整数类型
int:用于声明一个整数变量(四个字节)
int a; //声明一个整型变量a
int b=10; //声明一个整型变量b,并将其初始化为10
short:用于声明一个短整型变量(两个字节)
short c; //声明一个短整型变量
long:用于声明一个长整型变量(八个字节)
long d; //声明一个长整型变量
char:用于定义字符型变量(一个字节)
char ch='A'; // 表示将字符'A'存储到变量ch中
1.1.3 浮点类型:
浮点型用于存储小数数值,分别有单精度浮点型(float)和双精度浮点型(double)
区别:保存有效小数的个数。
float a=3.14f;
double b=10.6674;
注意:给float类型的变量赋值时,要在数值后面加上一个f或F,表示这是一个float类型的常量,否则系统默认为double类型的常量,可能会造成精度损失。
1.1.4 void类型:
主要用于说明不返回值的函数或指向任一类型的指针等。
以下是各个数据类型所占字长以及取值范围:
1.2 强制类型转换
强制数据类型的转换是指采用某种方式将某种数据类型强制转换成指定的数据类型。包括显式的数据类型转换,和隐式的数据类型转换。例如:
int a=22,b=0;
float c=24.87,d=3.3
b=(int)(a+c+d); //b为50
注意:强制类型转换符后面的表达式如存在复杂运算,就一定要用小括号括起来强制类型转换符是一种不安全的转换,一般都是将高级类型转换成低级类型,要丢失数据的精度;强制类型转换并不改变表达式中变量的数据类型和其值。
补充:当数据类型在运算时如果类型不同会进行类型转换,优先级如下:
bit→char→int→long→float→signed→unsigned
也就是说,当 char 型与 int 型进行运算时,先自动对 char 型扩展为 int 型,然后与 int 型进行运算,运算结果为 int 型。