• LR静态存储/动态存储/指针变量脚本说明


    在一次教程学习中,看到该知识点并记录了下来,希望与大家共同探讨学习。

    一、静态存储与动态存储

      静态存储变量通常是在变量定义时就分定存储单元并一直保持不变, 直至整个程序结束。动态存储变量是在程序执行过程中,使用它时才分配存储单元,使用完毕立即释放。动态存储变量最典型的例子是函教的形式参数,在函数定义时并不给形参分配存储单元,只是在函数被调用时,才予以分配,调用函数完毕立即释放,如果一个函数被多次调用 ,则反复地分配和释放形参变量的存储单元。

      从以上分析可知,静态存储变量是一直存在的 ,而动态存储变是则时而存在时而消失。 我们又把这种由于变量存储方式不同而产生的特性称变量的生存期。( 见以下脚本 )

     1 Action()
     2 {
     3 
     4     int i;
     5 
     6        //执行函数auto_static 5次
     7     for (i=0;i<5;i++) {
     8         auto_static();
     9     }
    10 
    11 
    12     return 0;
    13 }
    14 
    15 
    16 //静态动态变量测试函数
    17     void auto_static(void)
    18     {
    19         int var_auto=0;          //动态变量,每次调用都重新初始化
    20         static int var_static=0; //静态局部变量:只初始化1次        
    21         lr_output_message("var_auto=%d,var_static=%d
    ",var_auto,var_static); //输出两个变量的值
    22         var_auto++;
    23         var_static++;
    24     }

    大家可以想想,两个变量输出的都是什么值:

    1 Action.c(38): var_auto=0,var_static=0
    2 Action.c(38): var_auto=0,var_static=1
    3 Action.c(38): var_auto=0,var_static=2
    4 Action.c(38): var_auto=0,var_static=3
    5 Action.c(38): var_auto=0,var_static=4
    View Code

    二、指针

      指针是一个存储计算机内存地址的变量。从指针指向的内存读取数据称作指针的取值。指针可以指向某些具体类型的变量地址,例如int、 long 和double。

      根据出现的位置不同,操作符 * 既可以用来声明一个指针变量,也可以用作指针的取值。当用在声明一个变量时,表示这里声明了一个指针。其它情况用到 * 表示指针的歌值。

      & 是地址操作符,用来引用一个内存地址。通过在变量名字前使用&操作符,我们可以得到该变量量的内存地址。(见以下解本)

     1 Action()
     2 {
     3 
     4 //将var1值赋给变量deref
     5     int *ptr;      //生命一个int类型的指针变量
     6     int deref;
     7     int var1 = 35; //定义变量并复制,此时会分配存储单位,有存储地址
     8     int var = 99;
     9 
    10     ptr = &var;    //ptr指向变量var的内存地址,但不可以把数值赋给指针变量
    11     deref = *ptr;  //对指针进行取值,打印存储在指针地址中的内容
    12     lr_output_message("var is %d",deref);
    13 
    14 
    15     return 0;
    16 }

    输出的值为: var is 99

  • 相关阅读:
    [杂谈]关于前端如何学习框架的一点牢骚
    【2018】面试复习大纲
    迟来的2017总结
    [转载并收藏]JavaScript 疲劳终极指南:我们行业的真相
    想做好产品,一定要成为自己产品的用户
    2017年个人提升计划
    Chrome新发现
    不要被所在的公司或企业绑架
    半夜不想睡有感
    2016年总结
  • 原文地址:https://www.cnblogs.com/zwh-Seeking/p/12030642.html
Copyright © 2020-2023  润新知