• 全国计算机等级考试二级教程-C语言程序设计_第12章_C语言中用户标识符的作用域和存储类


    生命周期的概念,也就是生存期,仅仅适用于变量。

    代码、常量、定义等等都是与程序共存亡的,他们的生命周期就是程序的生命周期。

    静态分配:生命周期是整个程序执行周期,内存会一直存在,在main函数执行之前就创建,无论函数如何运行、如何调用,内存一直不会被回收,一直到程序结束才被程序回收。

    自动分配:就是在栈上,系统自动回收清理,函数调用的时候,从定义的地方开始创建,函数结束的时候,系统自动进行回收。

    动态分配:生存期就是从malloc开始,从free结束。

     

    例12.1

    以下函数 power() 用以计算 x^n。

     1 #include <stdio.h>
     2 int power(int, register int);
     3 main()
     4 {
     5     int s;
     6     s = power(5, 3);
     7     printf("%d
    ", s);
     8 }
     9 int power(int x, register int n)
    10 {
    11     register int p = 1;
    12     while (n)
    13     {
    14         p = p*x;
    15         n--;
    16     }
    17     return p;
    18 }

    例12.2

    有下列程序:

     1 #include <stdio.h>
     2 int sum;        /* 定义全局变量 */
     3 void fun(void);
     4 main()
     5 {
     6     sum = 10;
     7     printf("* * main(1) * *:%d
    ", sum);
     8     fun();
     9     printf("* * main(2) * *:%d
    ", sum);
    10 }
    11 void fun(void)
    12 {
    13     int sum;        /* 定义同名局部变量 */
    14     sum = 20;
    15     printf("* * fun * *:%d
    ", sum);
    16 }

    以上程序运行时输出结果如下:

    * * main(1) * *:10
    * * fun * *:20
    * * main(2) * *:10
    请按任意键继续. . .

  • 相关阅读:
    随机数模块(random)
    时间模块(time)
    collection模块 1
    collection模块
    re模块
    正则
    Bootstrap 关于下拉菜单的使用
    Bootstrap 关于Glyphicons 字体图标的使用
    oracle拼音排序
    ajax缓存问题
  • 原文地址:https://www.cnblogs.com/denggelin/p/5428581.html
Copyright © 2020-2023  润新知