zoukankan      html  css  js  c++  java
  • 局部变量 全局变量 作用域 静态存储 动态存储,看书

    局部变量:函数内部定义的变量

    float fun(int a){

      int b,c;

    }

    产生作用的范围紧紧限于函数内部

    全局变量:函数之外定义的变量

    int p=1,q=5;

    int fun(int r){

    r=p+q;

    }

    产生作用的范围在从定义位置开始到全部程序结束

    最好写在#include <iostream>的后边

    {

      int b,c;

      b=2;c=5;

      int sum;

      sum=b+c;

    }

    作用域:分为4种不同的作用域(1)文件作用域 (2)函数作用域 (3)块作用域  (4)函数原型作用域


    存储期:就是生命周期

    静态存储:程序运行期间分配固定的存储空间

    全局变量

    动态存储:程序运行期间分配自动的存储空间

    动态分配的有(1)函数的形式参数 (2)函数中定义的变量 (3)函数调用时的现场保护和返回地址

    自动变量:就是不加static的变量,而加auto

    int fun(int a){

      auto int b,c=3;

    }

    b和c 就是自动变量,为什么之前就没有,突然出现,因为你根部不需要写auto ,自动默认就是auto,就是可以省略

    静态局部变量,无论局部还是全局,加上static 意义就不一样了

    C++中的static声明的变量只能在本程序中调用。

    看结果?

    #include <iostream>
    using namespace std;
    
    int fun(int a){
        auto int b=10;
        static int c=6;
        b+=3;
        c+=5;
        return a+b+c;
    }
    int main(){
        int a=20;
        for(int i=0;i<3;i++){
            cout<<fun(a)<<" -- ";
        }
        return 0;
    }

    看结果?

    #include <iostream>
    using namespace std;
    
    int fun(int a){
        static int c=1;
        c*=a;
        return c;
    }
    int main(){
        for(int i=1;i<6;i++){
            cout<<i<<"!="<<fun(i)<<endl;
        }
        return 0;
    }

    看结果?

    #include <iostream>
    using namespace std;
    
    int fun(int a){
        static int c=1;
        c*=a;
        return c;
    }
    int main(){
        for(int i=1;i<6;i++){
            cout<<i<<"!="<<fun(i)<<endl;
        }
        return 0;
    }
  • 相关阅读:
    [Hapi.js] Route parameters
    [Hapi.js] Logging with good and good-console
    [Hapi.js] Up and running
    [Unit Testing] Directive testing, require parent controller
    数学-盲点题:九个点用四条直线连起来
    汉语-词语-思维:思维方法
    汉语-词语-思维:思维方式
    汉语-词语:思维
    思考方式-数学-盲点题:盲点题
    摄像机-哈苏:哈苏
  • 原文地址:https://www.cnblogs.com/qingyundian/p/7797503.html
Copyright © 2011-2022 走看看