C语言

  1. 变量的存储类别、

    1. 静态存储变量、——全局变量是静态存储
      1. 程序运行期间有固定存储空间
        2. 动态存储变量、
        3. 存储的内容、
        4. 形参、
        5. 局部变量、
        6. 函数调用时发生的数据和返回地址、
        7. 程序运行期间有根据需要而分配存储空间、
        8. 每次调用函数分配的内存分配都不一定一样、
  2. 局部变量的存储方式、

    1. 函数调用时分配、调用完成后空间会被释放——一般情况下、

      void a()
      {
      	int c = 1;
      	printf("c=%d\n", c);
      	c++;
      	return;
      }
      int main()
      {
      	a();
          a();
          a();
          a();
          a();
          a();
      }//结果一直是1、
      
    2. 特殊情况——局部静态变量、

      1. 局部静态变量使用——static保留、

      2. void a()
        {
        	static int c = 1;
        	printf("c=%d\n", c);
        	c++;
        	return;
        }
        int main()
        {
        	a();//返回1
            a();//返回2、因为局部静态变量保留数值、占用储存单元不释放内存
            a();
            a();
            a();
            a();
        }
        
      3. static——将动态变量的存储区域改为静态存储区域???(个人理解或许是错误有待验证)

      4. 局部变量在编译时赋予初值、只赋予一次、程序运行的时候就有值、以后调用时不在重新赋初值而是使用上次调用结束时的值

      5. 定义局部静态变量时如不赋初值时、则自动赋值为0

      6. 普通局部变量不赋初值、则初值为随机内容

      7. 静态局部变量使用结束后期内容仍然保留、且其它函数不能引用该内容、

      8. 缺点、

        1. 占用内存、

  3. 全局变量跨文件引用、

    1. 一个项目中只能有一个main函数

    2. 使用外部全局变量需在头部使用extern 来声明该变量

      1. extern  ........
            .....
            ...
        
    3. 、在全局变量前加上static则该变量只能在本函数内使用、其它函数不能使用、使用extern来声明的话无效、

    4. 全局变量使用时、如果别的函数改变该变量的内容、则该全局变量的内容也会变动

  4. 函数的跨文件调用、

    1. 函数前面加上static、表示该函数是内部函数、静态函数、限制再本函数中使用、可以并存但是内存不同、两个
      1. 两个名称类型相同的函数可以并存、且两个函数互不干扰、——同一个项目下、不同的文件内、
        2. 不用static则是外部函数、也可以加extern 加不加都可以
  5. static关键字用法总结、

    1. 限制该全局变量只能再本函数内使用
posted on 2020-09-06 22:21  程耀辉  阅读(135)  评论(0编辑  收藏  举报