数据类型
-
内置类型
整型 int
浮点型 float double
字符 char
布尔类型 _Bool -
自定义类型
数组
结构体 struct
联合体 union
枚举 erum
字符
- char
它可能等于signed char或者unsigned char,由语言环境决定,这一点与int不同 - signed char
即有符号的字符,可以表示正数,0和负数 - unsigned char
即没有符号的字符,只能表示正数和0,但是表示的最大正数要更大上一倍
整型
- 短整型
(signed) short (int)
unsigned short (int) - 整型
(signed) int
unsigned int - 长整型
(signed) long (int)
unsigned long (int) - 更长的整型
(signed) long long (int)
unsigned long long (int)
浮点型
- 单精度浮点型 float
- 双精度浮点型 double
- 高精度浮点型 long double
布尔类型
- _Bool 使用时要包含头文件<stdbool.h>
- 取值包含 true(1) 和 false(0)
#include<stdio.h>
#include<_stdbool.h>
int main()
{
_Bool flag = false;
if (flag)
printf("Cheer up");
else
printf("I can do it");
return 0;
}
取值范围<limits.h><float.h>
- SCHAR_MIN 和 SCHAR_MAX——signed char
- SHRT_MIN 和 SHRT_MAX——short
- INT_MIN 和 INT_MAX——int
- LONG_MIN 和 LONG_MAX——long
- LLONG_MIN 和 LLONG_MAX——long long
- UCHAR_MAX——unsigned char
- USHRT_MAX——unsigned short
- ULONG_MAX——unsigned long
- ULLONG_MAX——unsigned long long
创建变量(数据类型+变量名)
如
给变量一个初始值,叫初始化,如
全局变量
- 定义在大括号外部,使用范围广
- 存放在内存的静态区
局部变量
- 定义在大括号内部,使用范围小
- 当与全局变量重名时优先级更高
- 存放在内存的栈区
(堆区是用来动态内存管理的)
算术操作符+ - * / %
双目操作符
操作数有两个,在双目操作符的两端
- 注:
%用于计算余数(如10%3=1)
%不能用于浮点数
两个整数相除得到的是除法结果的整数部分
操作数中只要有一个浮点数就会进行浮点数的除法
如:这两个代码前者结果为0而后者为25
单目操作符
++a表示先给a加一再使用a(先+1后使用)
a++表示先使用a再给a加一(先使用后+1)
a–和--a同理
赋值
a=b即是将b的值赋给a
a+=2即是将a+2的值赋给a
这些符号同理
强制类型转换
如:
int a=3.14(此时a为浮点数与数据类型对不上)
int a =(int)3.14(此时a的值就是被强制转换成整数的3.14,即3)