指针与函数的关系、栈

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

猜你喜欢

转载自blog.csdn.net/cs13797778767/article/details/81222505