全局变量和extern详解
声明与定义 首先讲一下声明与定义 声明不等于定义,声明只是指出了变量的名字,并没有为其分配存储空间;定义指出变量名字同时为变量分配存储空间,定义包含了声明 extern int i; //声明变量i,但没分配存储空间,还不能使用, 可以出现很多次,下面的三种情况只能出现一次 int i; //定义了变量i,并分配了空间,可以使用 extern int a =0 //定义一个全局变量a 并给初值 int a =0;//定义一个全局变量a,并给初值 注意:在程序中一个变量可以声明多次,但只能定义一次。 全局变量:在函数内部定义的变量称为局部变量,它的作用域是从定义处到函数结束;在函数外部定义的称为全局变量,它的作用域是从定义处直到文件结束。 不管是全局变量还是局部变量,作用域都是从定义处开始的 extern extern是用来声明全局变量的 #include<iostream> using namespace std; int main(){ extern int a; cout<<a<<endl; //int a=5; this is wrong , a should be a global variable getchar(); return 0; } int a=5;//global variable 用#include可以包含其他头文件中变量、函数的声明