MST

星途 面试题库

面试题:C++中全局变量和局部变量作用域的理解与应用

请写出一段C++代码,其中包含一个全局变量和多个局部变量,并且通过函数调用展示全局变量和局部变量在不同作用域下的访问情况,同时解释为什么会有这样的访问结果。
19.5万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试
#include <iostream>

// 全局变量
int globalVar = 10;

void func() {
    // 局部变量
    int localVar = 20;
    std::cout << "在func函数中,局部变量localVar的值: " << localVar << std::endl;
    std::cout << "在func函数中,全局变量globalVar的值: " << globalVar << std::endl;
}

int main() {
    // 局部变量
    int localVar = 30;
    std::cout << "在main函数中,局部变量localVar的值: " << localVar << std::endl;
    std::cout << "在main函数中,全局变量globalVar的值: " << globalVar << std::endl;

    func();

    return 0;
}

访问结果解释

  1. 全局变量:全局变量globalVar在整个程序中都可见,它的作用域是从声明处到文件末尾。在main函数和func函数中都可以直接访问它,因为它处于全局作用域,任何函数只要有权限都可以访问。
  2. 局部变量:在main函数和func函数中分别定义了局部变量localVar。局部变量的作用域仅限于其所在的代码块(函数体)。在main函数中的localVarfunc函数中的localVar是不同的变量,它们有各自独立的存储空间。所以在main函数中访问的localVarmain函数内定义的局部变量,而在func函数中访问的localVarfunc函数内定义的局部变量。每个局部变量仅在其所在的函数作用域内有效,离开该作用域就无法访问。