5day
一、指针
【1】指针
1--- 指针变量:用于存放地址量的变量
2--- 地址常量
int a = 20;
int *p = &a;
【2】运算符
1--- &
2--- *(指针解引用):通过地址获取其内容
类型
地址降级 a[i][j] = *(a[i]+j) = *(*(a+i)+j)
3--- []:只针对于指针运算。指针加单位长度,后取*运算。
二、函数
【1】指针函数
【2】函数指针
【3】函数指针数组
本质:数组,由多个元素组成
元素:函数指针类型
int fun(char a, float b);
int (*p[4]) (char,float);
p[0] = fun;
【4】函数递归调用
1--- 自己调用自己
2--- 必须有结束条件
【5】回调
int * fun( int (*b)(char c, float d) , char * e, double f);
fun( 函数名 , a , 32.45 )
{
}
【6】条件编译
【7】
struct 结构体类型名
{
数据类型 成员名1;
数据类型 成员名2;
:
数据类型 成员名n;
};
【8】定义结构体变量
struct 结构体名
{
成员列表;
}变量名1;
struct 结构体名 变量名2;
【9】访问结构体成员
结构体变量名.成员名
【10】结构体初始化操作
struct 结构体名 变量名={初始数据表};
【11】无名结构体
没有类型名。
一般状态下:无名结构体不可以定义局部变量。
【12】结构体嵌套
1--- 成员所属的数据类型是 结构体类型
2--- 内部的结构体通常定义为无名结构体
【13】结构体数组
1--- 本质是数组,元素是结构体类型