贴了名字的盒子---局部变量,全局变量

46 阅读2分钟

局部变量:

定义在函数内部的变量称为局部变量,局部变量的作用域仅限于函数内部,在函数执行完毕之后,局部变量就会失去作用。

全局变量:

在所有函数外部定义的变量称为全局变量,它不属于某个函数,属于源程序。

例题1:

#include <stdlib.h>
 
int a = 200; //全局

void f(){
    int a = 1;  // 局部
    a = 2; // 使用局部变量
    printf("%d\n",a);
}
int main(){
    f();
    // 在main函数中
    // f中的局部变量
    // 此处的a就是全局变量a
    printf("%d\n",a);
}

结果如下:

image.png

例题2:

#include <stdlib.h>
 
int a = 200;
int b = 100;
void f(){
    int a = 1;
    b = 2;
    printf("a=%d,b=%d\n",a,b);
}

int main(){
    f();
    printf("a=%d,b=%d\n",a,b);
}

结果如下:

image.png

例题3:

#include <stdlib.h>
 
 void f(int m){
     m += 10;
 }
 
 int main(){
     int m = 1;
     printf("m=%d\n",m);
     f(m);
     printf("m=%d",m);
 }

结果如下:

image.png

例题4:

#include <stdlib.h>
 
void f(int x,int y){
    x += 1;
    y -= 1;
}

int main(){
    int x = 10;
    int y = 10;
    f(x,y);
    printf("x=%d,y=%d",x,y);
}

结果如下:

image.png

局部变量的产生场景

1.for(int i)

2.{}. ,if(){} , while(){} , {}

#include <stdlib.h>
}
int main(){
    for(int i=0;i<10;i++){
        printf("%d",i);
        
    }
    printf("i=%d",i);
}
 
int main(){
    {
        int i = 1;
        printf("i=%d",i);
    }
    
    int i = 2;
    printf("i=%d",i);
}