✏️ 纠错
第 233 题 / 共 301 题
第7题 运行如下代码会输出( )。
int value = 100;

void print1() {
    int value = 50;
    cout << value << " ";
    cout << ::value << " ";
}

void print2() {
    cout << value << " ";
}

print1();
print2();
📝 题目解析

【考纲知识点】C++变量作用域、局部变量与全局变量的访问、作用域解析运算符::的使用

【正确答案】C

【题目解析】

全局变量与局部变量:

代码开头定义了全局变量value,初始值为100。

print1()函数内部定义了同名的局部变量value,初始值为50。局部变量会隐藏同名的全局变量。

print1()函数的输出:

cout << value << " ";:访问局部变量value,输出50。

cout << ::value << " ";:使用作用域解析运算符::强制访问全局变量value,输出100。

print2()函数的输出:

函数内部未定义局部变量value,直接访问全局变量,输出100。

最终输出结果:

调用print1()输出50 100。

调用print2()输出100。

组合后结果为50 100 100,对应选项C。

局部变量会隐藏全局变量,但可通过::访问全局变量。因此,正确答案为C。