目录
1.常见数据类型
字符型:1.char 2.signed char //有符号字符型 3.unsigned char //无符号字符型
整形:1.short int //短整型 2. signed short int//有符号短整型 3.unsigned short int //无符号短整型 4.int //整型 5.signed int //有符号整型 6.unsighed int //无符号整型 7.long int //长整型 8.signed long int //有符号长整型 9. unsigned long int//无符号长整形 10.long long int//长长整型 11.signed long long int //有符号长长整型 12.unsigned long long int//无符号长长整形
浮点型:1.float//单精度浮点型 2.double//双精度浮点型 3.long double//长精度浮点类型
布尔类型:_Bool
2.singned和unsinged
可以看到对于同一个大的类型char,int也有的分成unsigned和signed,那么singned和unsigned代表什么意思呢?又有什么作用呢?
signed 关键字,表⽰⼀个类型带有正负号,包含负值; unsigned 关键字,表⽰该类型不带有正负号,只能表⽰零和正整数。
3.各类数据类型的取值范围
signed char c; // 范围为 -128 到 127
unsigned char c; // 范围为 0 到 255
注意,C 语⾔规定 char 类型默认是否带有正负号,由当前系统决定。 这就是说, char 不等同于 signed char ,它有可能是 signed char ,也有可能是unsigned char
unsigned int // 范围为-32768到 32767
int // 范围为0 到0xffff(65535)
signed int // 范围为0 到0xffff(65535)
_Bool类型只有ture和flase两种
这是使用中常需要考虑的几种数据类型的取值范围
其他数据类型的取值范围可参考limits.h ⽂件(说明了整型类型的取值范围)float.h ⽂件(说明浮点型类型的取值范围)
可在文件资源管理器中查询打开参考
4.各数据类型在内存中所占据的空间
-
基本数据类型:
- char:通常占 1 个字节(8 位)。
- int:通常占 4 个字节(32 位),不过在不同系统上可能会有所不同。
- float:通常占 4 个字节,用于存储单精度浮点数。
- double:通常占 8 个字节,用于存储双精度浮点数。
-
衍生数据类型:
- short 或者 short int:通常占 2 个字节。
- long 或者 long int:通常占 4 个字节,但在一些系统上可能是 8 个字节。
- long long 或者 long long int:通常占 8 个字节,用于存储长长整数。
-
指针类型:
- 所有指针类型(如 char*、int*)在不同系统上通常占据 4 或 8 个字节,取决于系统的位数和内存寻址能力。
5.操作符
算术操作符(双目操作符):+、-、*、/、%
对应数学中的加,减,乘,除,取余
特别说明:
/ 在两个整型运算时只会返回商
eg:int a=5,b=2;
a/b结果返回为2,而不是2.5;
要想得到2.5,需其中一个为浮点型
(float)a/b结果为2.5;
赋值操作符:=
给变量赋值
单⽬操作符:++、--、+、-
1.前置++
int a = 10;
int b = ++a;//++的操作数是a,是放在a的前⾯的,就是前置++
计算⼝诀:先+1,后使⽤;
a原来是10,先+1,后a变成了11,再使⽤就是赋值给b,b得到的也是11,所以计算技术后,a和b都 是11,相当于这样的代码:
int a = 10;
a = a+1;
b = a;
2.后置++
int a = 10;
int b = a++;//++的操作数是a,是放在a的后⾯的,就是后置++
计算⼝诀:先使⽤,后+1
a原来是10,先使⽤,就是先赋值给b,b得到了10,然后再+1,然后a变成了11,所以直接结束后a是 11,b是10,相当于这样的代码:
int a = 10;
int b = a;
a = a+1;
--于上同理只不过加变成减
6.强制类型转换
我们在使用各中数据类型时,有时可能进行类型之间的转换
像我们创建了一个float类型:float a = 3.14 ;int b;当我们想把a的值赋予b就需要强制类型转换,转换格式:(想要转换的数据类型)即 b=(int)a;
注意:强制类型转换可能会损失数据,像float转换为int会损失小数部分