基本数据类型
整形:
Int |
4字节 |
%d / %i |
Short |
2字节 |
%hd |
Long |
8字节 |
%ld |
Longlong |
8字节 |
%lld |
Unsigned |
4字节 |
% |
浮点型
单精度 |
Float |
4字节 |
%f |
双精度 |
Double |
8字节 |
%lf |
字符 char 1字节 %c
枚举:当一个变量只用几个固定的取值的时候使用枚举
特点:先定义枚举类型,然后使用枚举类型定义枚举变量
作用:提高代码的可读性,方便程序员之间的交流
注意:枚举类型的实质是整形
枚举定义的每一个成员都代表一个整形常量,默认情况下成员是从0开始,依次递增1.
构造类型
数组:用于存放多个同种类型数据
定义格式:数组类型 数组名称[元素个数]
- 当我们定义的一个数组的时候系统会为这个数组开辟一个连续存储区域
-
数组名是数组的地址
-
系统是如何根据下标访问某个元素:首先根据数组的地址计算处理这个元素的地址,然后访问它存储空间 array的地址 + 下标 * 数组类型
结构体:用于存放多个不同数据类型的数据的,若相同的数据类型可以表示特殊含义也使用结构体
结构体作用:让数据结构化
特点:
- 先定义结构体类型 然后在定义结构变量
- 结构体可以嵌套,但是不可以嵌套自己,但可以嵌套自己的指针
- 结构体作为函数参数传递是值传递
- 结构体指针作为函数参数传递是地址传递
指针类型:指针就是地址,有了地址我们可以访问它所指向的存储空间
指针变量:用于的存放地址变量
定义格式:所指向的数据类型 *指针变量名称
*作用:
- 定义变量的时候,它使一个类型说明符,说明定义的这个变量是一个指针变量
- 在非定义的变量的时候,他是一个操作符,访问指针所指向的存储空间
&作用
- 作为单目操作符,它是取出变量的地址
- 作为双目运算符,它使按位与
指针与函数
1、指针作为函数参数传递是地址传递
2、指针函数:返回值为指针的函数
1、不可以返回局部变量的地址
2、可以返回常量的地址
3、可以返回堆中的地址
3、函数指针:指向函数的指针
定义一个函数指针
所指向的函数的返回值类型 (*指针变量名称)(所指向的函数的形参列表)
结构体指针:指向结构体的指针
struct 结构类型名 * 指针变量名称
struct Person{ int age ;};
struct Person p;
struct Person *pp = &p;
pp->age = 20;
字符串:
使用字符数组,存储在栈中,它里面字符是可以修改的
使用字符指针,存储在常量区,它是只读的
总结:
- 所有的数据类型都可以定义变量
- 所有的数据类型都可以作为函数参数
- 所有的数据类型都可以作为函数的返回值