Geo*_*iuc 2 c++ variables static scope
如果我写这样的东西:
#include <iostream>
int main()
{
using namespace std;
{int n;n=5;} cout<<n;
system("pause");
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译器告诉我n是未声明的.然后我试着让它静止,但是再一次,编译器告诉我它是未声明的.变量declated static是否具有程序范围?如果没有,我如何在此程序中使用n?
Ben*_*ley 11
你将范围与生命周期混淆了.静态变量的生命周期等于程序的生命周期,但它们仍然遵循基于声明它们的位置的范围规则.
n 的范围就在括号之间:
{int n;n=5;}
Run Code Online (Sandbox Code Playgroud)
所以在块之外,你没有 n 变量。
将其设为静态只会使其在退出块后的值保留,以便下次再次进入该块时,您可以从上次执行该块时检索它的值,但它的范围仍然在括号内。
归档时间: |
|
查看次数: |
7818 次 |
最近记录: |