1.首先在函数内部声明的就是局部变量,只能够在函数内部或者代码块内使用。
2.全局变量,在所有函数的外部定义的变量,通常是在程序的头部定义,全局变量是在程序的整个生命周期内都是有效的。可以被任何函数访问,这点很重要,也就是说一旦声明就可以在整个程序中使用。
3.局部变量和全局变量名称可以相同,但是局部变量是可以覆盖全局变量的值。例如下面:
#include <iostream>
using namespace std;
// 全局变量声明
int g = 20;
int main ()
{
// 局部变量声明
int g = 10;
cout << g;
return 0;
}
输出:10
4.初始化全局变量和局部变量的关系,局部变量在定义是,系统不会对其初始化,你必须自己对其初始化,定义全局变量是,系统会自动初始化为下面值:
如果是局部变量是有定义static,是会初始化为0,如果没有定义静态局部变量的话,系统是不会初始化的。
数据类型 初始化默认值
int 0
char '\0'
float 0
double 0
pointer NULL
5.最后一个要提的就是最近遇见的一个,在C++for循环中,我们在初始化时,可以自己定义变量,但是要知道这个是局部变量,是只能够在这个for循环里面有效的,如定义for(int i;i<n;i++){.......},这个i变量只能够在for循环中有效,如果在for循环中调用了其他函数,之前也定义了一个i这个全局变量而其他函数也需要使用i这个变量,这时这个for中定义i的值,是不能够在其他函数中有效的,其他函数会一直调用全局变量i的那个值。