变量作用域(入门)

变量的作用域:

全局作用域(global scope):

如果一个变量它是全局变量,那么他的作用域在整个程序中都可以使用。

Example 1:

# include<iostream>

# include<string>

using namespace std;
string name="Peter";
void display(void);

int main()
{
cout<<"Your name is :"<<name<<endl;
display();

return 0;
}
void display(void)
{
  cout<<"\t\t"<<name<<endl;
}

Run:


xiandonghua@No:~/c++/c++bin$ ./built_in_type 
Your name is :Peter
        Peter

块作用域(block scope):

在函数块内定义的变量,其作用域为block scope。

Example 2:


#include<iostream>
using namespace std;
int main()
{
  int block_var=100;
  int sum{0};
  cout<<block_var<<endl;
  for(int i=20;i<block_var;++i)
  {
    sum+=i;
  }
  cout<<i<<endl;  //错误代码,因为此处的i处于未声明状态
  cout<<sum<<endl;
  return 0;

}

Run:


xiandonghua@No:~/c++/srccode$ g++ built_in_type.cpp -o ../c++bin/built_in_type -std=c++11
built_in_type.cpp: In function ‘int main()’:
built_in_type.cpp:12:9: error: ‘i’ was not declared in this scope
   cout<<i<<endl;
         ^

如果注释掉上述代码中cout<<i<<endl;程序正常运行。

从上述内容中,我们可以清楚的看到全局变量,与局部变量的区别。

对于Example 2来说,block_var作用在main()中,而int i 作用在 for()里,而且for()可以访问block_var。

就我目前的水平去理解它,应该是:



        一步一步慢慢学,不怕学的比别人慢,就怕什么也没学懂。

    ----至自己


猜你喜欢

转载自blog.csdn.net/arctic_fox_cn/article/details/80275662