zoukankan      html  css  js  c++  java
  • 全国计算机等级考试二级教程-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
    请按任意键继续. . .

  • 相关阅读:
    用硬件卡克隆Linux集群
    基于Linux系统WINE虚拟机技术的研究
    Rpm另类用法加固Linux安全
    基于TC技术的网络流量控制实战
    开源世界里的七剑
    借Stunnel工具保护E-mail服务器
    如何应对DDOS网络攻击(之二)
    如何应对DDOS网络攻击
    Leetcode-983 Minimum Cost For Tickets(最低票价)
    Leetcode-413 Arithmetic Slices(等差数列划分)
  • 原文地址:https://www.cnblogs.com/denggelin/p/5428581.html
Copyright © 2011-2022 走看看