1、指针与数据关系:
1、指针与变量
2、指针与数组(一维,二维)
3、指针与结构体的变量
4、二级和多级指针
一级指针变量:专门用于存放普通变量的地址
eg: int b=200; int* a=&b;
二级指针变量:专门用于存一级指针变量的地址
二级定义变量: 类型** 变量名
5、指针与函数的关系:
C语言:面向过程(模块(函数):功能)
函数分类:自定义函数,系统函数
系统函数:由系统提供的模块接口(API)
printf(实参) ...
1、调用函数: 函数名(实参列表);
注:调用函数一定要函数名匹配
2、自定义函数:f(x,y)=3x+y;
函数类型 函数名(形参列表)
{
函数体;//功能模块的过程描述
}
1、无返回值 无形参
viod 函数名(void)
{
}
2、有形参 无返回值
void 函数名(形参列表)
{
}
1、一级指针作形参:当在被调用函数内需要修改调用函数内的数据时传递地址
2、传递数组:
返回值 函数名(char buf[]);//buf是指针变量
3、结构体作形参:(实参传递形参:值传递)
缺点:不能修改调用函数内的结构体内容
(通过名字或者地址)
结构体指针作形参:修改指向内容
3、变量的作用域,生命周期:
1、变量作用域:能被引用的区间
全局:在函数外定义的变量
作用域:从定义开始,到本文件程序。
局部:在函数内定义的变量
作用域:在函数内
2、变量的生命周期:
动态区:auto变量(只能在函数内定义)
当函数被调用时,空间被申请。当函数运算结束时,空间被释放。
静态区:static变量或全局变量
堆 区:alloc/malooc等申请 free释放
栈:是一种算法思想(先进后出 FILO)
应用:撤消,浏览上一页,恢复
算法:#口
栈顶:能被操作的一端(能进栈/出栈)
栈底:不能被操作的一端(不能进栈/出栈)
操作:每次操作“只能”取/进一个数据
顺序(数组:)栈:数据的容器是一个块数组
功能:
1、初始化栈:initStack
2、进栈: push
注:栈不能为满
3、出栈: pop
4、栈元素的个数:StackLength
// 5、次栈栈顶元素的:
6、清空栈:ClearStack
7、判断栈为空:IsEmpty
8、判断栈为满 :IsFull