int x=1000和just x=1000产生不同的值
int x=1000 and just x=1000 yield different values
我正在学习全局和局部变量,突然在IDE中进行实验时,我注意到了这样的事情:
以下程序产生100 500 1000(在三个不同的行中(-
# include <iostream>
using namespace std;
int X=100;
void printing ()
{
cout<<X<<"n";
int X=500;
cout<<X<<"n";
}
int main ()
{
int X=1000;
printing ();
cout<<X<<"n";
return 0;
}
下面的程序产生1000 500 1000(在三个不同的行中(-
# include <iostream>
using namespace std;
int X=100;
void printing ()
{
cout<<X<<"n";
int X=500;
cout<<X<<"n";
}
int main ()
{
X=1000;
printing ();
cout<<X<<"n";
return 0;
}
注意,在第一个代码中,我将int X = 1000
写为主函数的开头行,在第二个代码中我将X = 1000
写为开头行。为什么这会产生差异?
在您的第一个程序中,您使用语法int X = 1000
声明另一个名为X
的变量,该语法隐藏全局变量。由于printing()
函数没有看到这个新变量,它会访问全局X
并打印它
在第二个程序中,您为全局X
分配一个新值,现在printing
函数可以愉快地访问该值。
有关更多信息,另请参阅:https://en.wikipedia.org/wiki/Variable_shadowing
相关文章:
- 如何在C++中写入 1000 个文件时有效地缓冲
- 你如何理解"std: :forward is just syntactic sugar"?这是真的吗?
- 为什么 Lisp 中 1000 阶乘的计算如此之快(并显示正确的结果)?
- 为什么 std::find( s.begin(), s.end(), val ) 比集合 s 的 s.find(val) 慢 1000 倍<int>?
- 为什么可以将 std::unique_ptr* u1 <A>作为 u1[1000] 访问并且它仍然有效
- C++:创建1000次唯一的随机分布,在任何分布中都没有重复的数字
- int x=1000和just x=1000产生不同的值
- C++2骰子滚动1000万次开始
- 电脑从1-1000猜你的号码(必须在10次尝试中)
- 掷2个骰子1000次
- 如何计算大小为 1000 x 1000 的 2D 数组中 2 个元素之间的步幅?C++
- 如何在没有同步的情况下使用多个线程(2、4,8、16 个线程)在循环(10,100、1000 个周期)中打印字符串?
- 同一程序的运行时间差异很大,有时达到1000+us
- 为什么 CSpinButtonCtrl 不能正确处理大于 1000 的数字?
- 将"float*"赋值为"float* [1000]"中的不兼容类型
- C 程序仅在字符阵列获得“ 1000!”的输入时才在DELETE上崩溃
- GCC 和 LLVM 中的正则表达式速度相差 1000 倍
- 1000共享指针的记忆力为多少
- 当元素数> 1000 时,如何制作向量的笛卡尔积?
- 1000双倍有多大?