C++局部变量和全局变量(详解版)

  • 内容
  • 评论
  • 相关

局部变量定义在一个函数内部,在函数之外是不可访问的。全局变量定义在所有函数之外,并且在其作用域内的所有函数都可以访问。下面做详细讲解。

局部变量

函数中定义的变量是该函数的局部变量。它们在其他函数的语句中是不可见的,通常无法访问它们。下面的程序显示,由于函数中定义的变量被隐藏,所以其他函数可以拥有名称相同但实际上互不相干的变量。

#include <iostream>
using namespace std;

void anotherFunction() ; // Function prototype
int main()
{
    int num = 1; // Local variable
    cout << "In main, num is " << num << endl;
    anotherFunction();
    cout << "Back in main, num is still " << num << endl;
    return 0;
}
void anotherFunction()
{
    int num = 20; // Local variable
    cout << "In anotherFunction, num is " << num << endl;
}

程序输出结果:

In main, num is 1
In anotherFunctionr, num is 20
Back in main, num is still 1

虽然有两个名为 num 的变量,但是程序在同一时间只能“看到”其中一个,因为它们在不同的函数中。当程序在 main 中执行时,main 中定义的 num 变量是可见的。当调用 anotherFunction 时,只有在其中定义的变量是可见的,所以 main 中的 num 变量是隐藏的。图 1 显示了两个函数的封闭性质,这些框代表变量的作用域。

局部变量及其作用域
图 1 局部变量及其作用域

本文标题:C++局部变量和全局变量(详解版)

本文地址:https://www.hosteonscn.com/3739.html

评论

0条评论

发表评论

邮箱地址不会被公开。 必填项已用*标注