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;
    }
  • 相关阅读:
    Windows Embedded CE 中断结构分析
    linux framebuff驱动总结
    Linux assemblers: A comparison of GAS and NASM
    使用C#编写ICE分布式应用程序
    makefile的写法
    在客户端中如何定位服务器(即如何寻找代理)
    番茄花园洪磊: 微软很早给我发过律师函
    利用ICE编写程序的几个注意点
    ICE架构
    AT&T汇编语言与GCC内嵌汇编简介
  • 原文地址:https://www.cnblogs.com/qingyundian/p/7797503.html
Copyright © 2011-2022 走看看