在函数中打印全局变量而不是 :: 运算符的任何替代方法

any alternate way to print global variable within function instead of :: operator

本文关键字:运算符 任何替 方法 函数 打印 全局变量      更新时间:2023-10-16

请参阅代码片段:

#include <iostream>
using namespace std;
int var = 20;
int main()
{
    int var =8;
    cout << "local var=" << var << "Global var =" << ::var << endl; 
return 0;
}

有没有其他方法可以打印全局变量,即 var 重新初始化的 main 中的 20

谢谢

你的意思是:

int &p = ::var; // Using a reference
int var =8;
cout << "local var=" << var << "Global var =" << p << endl; //Play with p 

如果不修改 cout 语句之外的代码,别无他法。 简单来说,您显然可以间接地main访问::var - 通过另一个变量,该变量是指向var的引用或指针,或复制var的值,或返回任何这些东西的函数等。 (与其他一些语言不同,没有可访问的元数据携带对象,其中包含全局或调用上下文的堆栈帧/局部变量等。

它没有被"重新初始化",本地声明只是隐藏全局声明。必须使用范围解析运算符。