全局作用域(global scope):
如果一个变量它是全局变量,那么他的作用域在整个程序中都可以使用。
Example 1:
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:
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。
就我目前的水平去理解它,应该是:
一步一步慢慢学,不怕学的比别人慢,就怕什么也没学懂。
----至自己