C++学习笔记系列2-9

变量的作用域和局部变量

简单理解就是变量的作用范围,如:

void Func()

{

int a = 10;

cout << a <<endl;

}

这个函数中,有一个 **int 变量 a 它的作用范围就在这个函数的 "{ }"中,**出了这个大括号,这个段代码就被系统收回了,这个区域就叫做:作用域。

再如:

int main ()

{

// 这是主函数代码

string str = "hello world";

int a = 55;

bool b = false;

}

主函数和我们定义的普通函数一样,也是具有作用域的,因此我们在主函数中声明的变量,也是同样的效果**,一旦主函数执行完毕,这些变量占用的内存空间就被系统回收了。**

以上这样的变量,被叫做:局部变量,它的特点是:只在作用域内有效果,一旦出了自己的作用域,就结束它的使命了。

全局变量

**全局变量与局部变量相反,它对作用域的限制没有那么严格,并且声明的位置也有所不同,**如:

#include <iostream>

using namespace std;

int i = 999;

int main( )

{

cout << i <<endl;

}

输出:999

// 我们可以看到,int i =999 这个**变量声明赋值在主函数外,这个便是全局变量的特点。**它不属于某个函数,也不属于任何语句块,而是属于整个C++源文件,可以在程序的任何位置调用它。

|------|----------|-----------|
| | 全局变量 | 局部变量 |
| 作用范围 | 程序的任何位置 | 只在自己的作用域中 |
| 声明周期 | 程序结束了就销毁 | 作用域结束就销毁 |

就近原则

如果定义了一个全局变量,名称为 i ,并赋值,然后又在主函数中重复定义了,即:变量类型、名称都一样,只是值不同,那么则以最后一个为准。