c语言中的数据类型分类:

"类型",就是相似的数据所拥有的共同特征,编译器只有知道了数据的类型,才知道怎么操作
数据。
字符型
字符的英文单词是 character ,在C语言中使用 char 表示字符类型。
char //character
[signed] char //有符号的
unsigned char //无符号的
整型
整数的英文单词是 integer ,在C语言中使用 int 表示整型类型。
//整数 - integer
//短整型
short [int]
[signed] short [int]
unsigned short [int]
//整型
int
[signed] int
unsigned int
//长整型
long [int]
[signed] long [int]
unsigned long [int]
//更长的整型
//C99中引入
long long [int]
[signed] long long [int]
unsigned long long [int]
浮点型
在数学中小数的形式就是浮点型
float //单精浮点型
double //双精浮点型
long double //精度更高的浮点型
布尔类型
C 语言原来并没有为布尔值单独设置一个类型,而是使用整数 0 表示假,非零值表示真。
在 C99 中也引入了 布尔类型 ,是专门表示真假的。
_Bool
布尔类型的使用得包含头文件 <stdbool.h>
布尔类型变量的取值是: true 或者 false .
数据类型的长度计算
sizeof 操作符
sizeof 是一个关键字,也是操作符,专门是用来计算 sizeof 的操作符数的类型长度的,单位是
字节。sizeof 的计算结果是 size_t 类型的。(size_t -----%zd(%zu))

signed 和 unsigned
C 语言使用 signed 和 unsigned 关键字修饰 字符型和整型 类型的。
signed :有符号的,表示一个类型带有正负号,包含负值;
unsigned :无符号的,表示该类型不带有正负号,只能表示零和正整数。
1.int类型
int 类型
int = signed int
signed 一般都省略不写
若表示非负整数,则必须使用关键字 unsigned 声明变量。
unsigned int a;
unsigned int 里面的 int 可以省略,所以上面的变量声明也可以写成下面这样。
unsigned a;
整数变量声明为 unsigned 的好处是,同样长度的内存能够表示的最大整数值,增大了一倍。
比如,16位的 signed short int 的取值范围是:-32768~32767,最大是32767;而
unsigned short int 的取值范围是:0~65535,最大值增大到了65535。
2.char类
signed char c; // 范围为 -128 到 127
unsigned char c; // 范围为 0 到 255
C 语言规定 char 类型默认是否带有正负号,由系统决定。这就是说, char 不等同于 signed char ,它有可能是 signed char ,也有可能是unsigned char 。与 int 不同。
变量
变量的创建
前面我们了解了类型,我们就可以使用类型来创建变量。
C语言中把经常变化的值称为变量,不变的值称为常量。
date_type name;
数据类型 变量名
变量命名的一般规则:
• 只能由字母(包括大写和小写)、数字和下划线(`_`)组成。
• 不能以数字开头。
• 长度不能超过63个字符。
• 变量名中区分大小写的。
• 变量名不能使用关键字。
变量在创建的时候就给一个初始值,就叫初始化
int age = 18;
char ch = 'w';
变量的分类
• 全局变量:在大括号外部定义的变量就是全局变量
全局变量的使用范围更广,整个工程中想使用,都是有办法使用的。
• 局部变量:在大括号内部定义的变量就是局部变量
局部变量的使用范围是比较局限,只能在自己所在的局部范围内使用的。


全局变量和局部变量在内存中存储在哪里呢?
内存中的三个区域:栈区、堆区、静态区。
-
局部变量是放在内存的栈区
-
全局变量是放在内存的静态区
-
堆区是用来动态内存管理的