MST

星途 面试题库

面试题:C++中局部变量与全局变量同名时的作用域解析

在C++中,当局部变量与全局变量同名时,如何在局部作用域中访问全局变量?请举例说明。
40.6万 热度难度
编程语言C++

知识考点

AI 面试

面试题答案

一键面试

在C++中,当局部变量与全局变量同名时,可以通过作用域解析运算符 :: 来在局部作用域中访问全局变量。示例代码如下:

#include <iostream>

// 全局变量
int num = 10;

int main() {
    // 局部变量,与全局变量同名
    int num = 20;

    // 输出局部变量的值
    std::cout << "局部变量 num 的值: " << num << std::endl;

    // 通过作用域解析运算符访问全局变量
    std::cout << "全局变量 num 的值: " << ::num << std::endl;

    return 0;
}

在上述代码中,定义了一个全局变量 num 并初始化为 10,在 main 函数中又定义了一个同名的局部变量 num 并初始化为 20。通过直接使用 num 访问的是局部变量,而通过 ::num 访问的是全局变量。