局部变量 全局变量 作用域 静态存储 动态存储,…

2018-06-17 21:36:43来源:未知 阅读 ()

新老客户大回馈,云服务器低至5折

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

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;
}

 

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

上一篇:素数的筛法

下一篇:第四章函数作业题,有参函数的调用