全局变量和局部变量
全局变量的作用域是**整个程序**。
局部变量的作用域就是定义它的那个函数,如果此**函数结束运行**,那么这个局部变量就会被**销毁**。
语句块变量就是一个{}里面的变量。ps:语句块主要是一个作用域的概念,它起始于标识符的声明处,结束于标识符声明所在语句块的结束右大括号"}"处。
全局变量在大型的程序里还是尽量少用,因为全局变量会导致程序的可读性降低,毕竟当名字相同你不知道它是全局变量的x还是局部变量的x。当然如果你程序很少用全局变量其实是很方便的。
#include <iostream>
using namespace std;
int x=1;
int main()
{
//在还没有定义x之前,调用的是全局变量x
cout<<"first one:"<<x<<endl;
printf("first adress:%p\n",&x);
//在main函数中定义了x,那么全局变量x将被隐藏
int x=8;
cout<<"second one:"<<x<<endl;
printf("second adress:%p\n",&x);
//下面是一个语句块,下面定义的x就只能在这个语句块里面用,而main函数里面的x和全局变量x都将会被隐藏
{
int x=3;
cout<<"third one:"<<x<<endl;
printf("third adress:%p\n",&x);
}
//语句块的x被销毁了
cout<<"fourth one:"<<x<<endl;
printf("fourth adress:%p\n",&x);
return 0;
}