C语言数据类型和变量
数据类型介绍
内置数据类型:整型、字符型、浮点型、布尔型
自定义类型:数组、结构体-struct、枚举-enum、联合体-union
整型
1 | //短整型 |
字符型
1 | char |
浮点型
1 | float |
布尔型
C99中引入的 布尔类型 专门表示真假的
1 |
|
各种数据类型的长度
每一种数据类型都有自己的长度,根据不同的数据类型,能够创建出不同长度的变量,变量的长度不同,存储的范围也不同。
sizeof 是一个关键字,也是操作符,专门用来计算类型长度的,单位字节。
八个比特位等于一个字节 8bit = 1byte
sizeof 的操作数可以是类型、变量、或者表达式。
sizeof后边的表达式不进行计算,仅根据表达式的类型得出大小sizeof的计算结果是size_t类型的,在printf函数中使用%zu占位符
1 |
|
在VS2026 X64配置下的输出:

signed & unsigned
C语言使用 signed 和 unsigned 关键字修饰字符型和整型类型
字符类型存储的是ASCII码值,ASCII码是整数,所以字符类型属于整型家族
signed 关键字,表示一个类型带有正负号,包含负值;unsigned 关键字,表示该类型无正负号,只能表示零和正整数。
1 | signed int a; //等价于 int a; |
整数变量声明为 unsigned 的好处是,同样长度的内存能够表示的最大整数值,增大近了一倍。
1 |
可以通过 limits.h 文件查看不同整型有符号和无符号的数据取值范围。
注:
1
2
3 char a
signed char a
unsigned char aC语言规定
char类型默认是否带有正负号,由当前系统决定。也就是说,char不等同于signed char,有可能是signed char,也有可能是unsigned char。这一点与
int不同,int就是等同于signed int
数据类型取值范围
每一种数据类型都有自己的取值范围,也就是储存的数值的最大值和最小值的区间。
可以通过 limits.h 文件查看整型类型的取值范围
通过 float.h 文件查看浮点型类型的取值范围
为了代码的可移植性,当需要知道某种整型类型的极限值时,应当使用以下变量
1 | SCHAR_MIN SCHAR_MAX //signed char |
变量
变量的创建语法形式:data_type name;
1 | int age; |
变量命名的一般规则:
- 只能由字母(大小写)、数字和下划线组成
- 不能以数字开头
- 长度不能超过63个字符
- 变量名中区分大小写
- 变量名不能使用关键字
变量在创建的时候就给一个初始值,就叫做初始化
1 | int age = 23; |
变量的分类
- 全局变量:在大括号外部定义的变量就是全局变量,放在了内存的静态区
- 局部变量:在大括号内部定义的变量就是局部变量,放在了内存的栈区
局部变量只能在局部范围使用,如果局部变量和全局变量同名时优先使用局部变量

