作用域(Scope)

不同作用域的变量

  • 局部变量
  • 全局变量
  • 形式参数

局部变量

在函数或代码块内部声明的变量称为 局部变量(Local Variables)。它们只能在该函数或代码块中被使用。

#include <stdio.h>

// a、b、c 是 main() 函数的局部变量
int main()
{
    int a, b, c;

    a = 10;
    b = 20;
    c = a + b;

    printf("%d\n", c);

    return 0;
}

定义局部变量时,系统不会初始化它,必须自己手动初始化它

#include <stdio.h>

void func()
{
    int x;

    printf("%d\n", x);
}

int main()
{
    func();

    return 0;
}

全局变量

在所有函数外部(通常是在程序顶部)声明的变量,称为 全局变量(Global Variables)。全局变量在程序的整个声明周期保存其值,并且可以在为程序定义的任何函数内访问它们。

任何函数都可以访问全局变量。也就是说,全局变量在声明后可用于整个程序。

#include <stdio.h>

int g;

void increase(int increment)
{
    g = g + increment;
}

void decrease(int decrement)
{
    g = g - decrement;
}

int main()
{
    printf("g: %d\n", g); // g: 0

    increase(10);
    printf("g: %d\n", g); // g: 10

    decrease(5);
    printf("g: %d\n", g); // g: 5

    return 0;
}

局部变量和全局变量可以有相同的名称,但函数内的局部变量的值将优先考虑。

#include <stdio.h>

// 全局变量声明
int g = 20;

int main()
{
    // 局部变量声明
    int g = 10;

    printf("g: %d\n", g); // g: 10

    return 0;
}

形式参数

在函数定义中的参数,称为 形式参数(Formal Parameters)。形式参数可以看作是函数内的局部变量,它们优先于全局变量。

results matching ""

    No results matching ""