全局变量、静态全局变量、局部变量和静态局部变量

全局变量

对于全体程序代码可见的变量,想要在跨模块中使用时,往往需要用extern进行声明

静态全局变量

用static关键字声明的全局变量

局部变量

在函数体内定义的自动变量

静态局部变量

用static关键字声明的局部变量

考虑如下代码:

int ik = 1;//为了好说明,在下面称其为ik1
int fun(int i){
static int k = 2;
k++;
return ++k*i++;
}
int main(){
int x = 5;
{
    int ik = 2;//为了好说明,在下面称其为ik2
    x += fun(ik);
            cout<<"The first X = "< 
  
运行结果

请特别注意如果包裹ik2的大括号去掉如下:

int ik = 1;//为了好说明,在下面称其为 ik1
int fun(int i){
static int k = 2;
k++;
return ++k*i++;
}
int main(){
int x = 5;
int ik = 2;//为了好说明,在下面称其为 ik2
x += fun(ik);
cout<<"The first X = "< 
  
运行结果

静态存储方式是指在程序运行期间分配固定的存储空间的方式,动态存储方式是在程序运行期间根据需要进行动态的分配存储空间的方式。全局变量静态全局变量静态局部变量都是在静态存储区(全局数据区)中分配空间的,而局部变量是在栈上分配空间的。

你可能感兴趣的:(全局变量、静态全局变量、局部变量和静态局部变量)