如果我写的是这样的:
#include <iostream>
int main()
{
using namespace std;
{int n;n=5;} cout<<n;
system("pause");
return 0;
}
编译器告诉我,n是未申报。 然后我试图使其静态的,但同样,编译器告诉我,这是未申报。 不变量declated静态有计划的范围? 如果没有,我怎么在这个程序中使用N +
如果我写的是这样的:
#include <iostream>
int main()
{
using namespace std;
{int n;n=5;} cout<<n;
system("pause");
return 0;
}
编译器告诉我,n是未申报。 然后我试图使其静态的,但同样,编译器告诉我,这是未申报。 不变量declated静态有计划的范围? 如果没有,我怎么在这个程序中使用N +
你混淆范围终身。 静态变量有一生等于程序的生命周期,但是他们仍然遵循范围界定基础上,他们的声明,其中的规则。
n的范围仅仅是个括号:
{int n;n=5;}
所以块之外,你有没有N个变量。
使其静态只是使它的退出块即使这样下次你再进入该块的时候,你可以检索它从你执行的块中的最后时间值值保留,但仍然是范围还是在括号内。
我如何使用n的这一计划?
using namespace std;
int main()
{
int n; // declare n as int
n=5; // assign it a value
cout << n; // display it.
system("pause");
return 0;
}
宣布在全球范围内的静态变量有其范围仅限于翻译单元。 声明的函数内的静态变量都有其生命周期设置为一样的程序,但在这种情况下,不影响其范围。 你将不得不把cout
在相同的范围内n
是为了使用它宣布。
在这里,编译器会发出错误n是不宣因为在这里“{INT N; N = 5;}”, 它在括号中声明 。 和大括号告诉我们该变量的范围。 当过范围结束变量从存储器中删除 。
而对于静态和地方。
静态 :变量是同样喜欢全局变量,但其价值仍然是整个应用程序不变。 和静态变量不能使用的extern其他页面上使用。
本地 :本地变量存储在堆栈中,当他们离开的范围 ,他们将被删除。