在函数中打印全局变量而不是 :: 运算符的任何替代方法
any alternate way to print global variable within function instead of :: operator
请参阅代码片段:
#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
的值,或返回任何这些东西的函数等。 (与其他一些语言不同,没有可访问的元数据携带对象,其中包含全局或调用上下文的堆栈帧/局部变量等。
它没有被"重新初始化",本地声明只是隐藏全局声明。必须使用范围解析运算符。
相关文章:
- ::(范围解析运算符)前面没有任何东西
- 为什么函数的任何索引处的下标运算符在C++中总是返回1
- 矩阵在任何运算符之后都变得相同
- 使用模板运算符 () 对任何函子的提升函数
- CPP 中的 ++ 运算符对字符是否有任何重载?
- 为运算符编写模板<<适用于任何向量
- 任何机构都可以在运算符重载中解释这行代码
- 如何确保 "<<" 运算符适用于模板化 ADT 定义中的任何泛型类型?
- 为什么重载运算符上的异常说明符'<<'不适用于任何 std::ostream 对象,但对库中定义的运算符不起作用?
- C++功能运算符结构不执行任何操作
- 错误的任何修复:二进制">>"找不到运算符
- 为什么赋值运算符必须返回任何内容
- 在指向类类型的指针中,有没有任何方法可以用outusing*调用类运算符
- 在任何编程语言中,递增和递减运算符的功能是什么?
- 在函数中打印全局变量而不是 :: 运算符的任何替代方法
- 什么不能接受字符串向量并用 offest 和 assigmnet 运算符替换任何字符串的字符?
- 重载运算符:常量与非常量返回类型:任何性能差异
- 将运算符类型转换为除某些引用之外的任何算术类型
- 为什么显式运算符 bool 允许我转换为任何基元类型
- 这里有任何方法可以使用拉普拉斯运算符来确定图像是否模糊