局部变量:作用域为函数内,在进入函数中自动创建,离开函数时自动消失。简而言之就是函数中定义的变量,无法在函数外访问,且在每次函数调用时自动创建,离开函数时自动消除。
void func()
{
string str="abc"; //局部变量
}
int main()
{
int a; //局部变量
double pi=3.14;//局部变量
}
全局变量:在函数外定义的变量,且作用域为整个项目中所有文件,意思就是main函数与子函数可以访问,除了定义全局变量的文件可以访问,项目中其它文件也可以访问。
string str="abc"; //全局变量
int a; //全局变量
double pi=3.14; //全局变量
void func()
{
}
int main()
{
}
静态局部变量:申明时只要在数据类型前加上static即可,与局部变量相比特征基本一致,唯一区别就是,在首次调用函数时创建静态局部变量,离开函数时变量不会自动消失,等下次调用函数时,该变量继续沿用上次函数调用的结果,通常用来统计函数调用的次数。
void func()
{
static string str="abc"; //静态局部变量
}
int main()
{
static int a; //静态局部变量
static double pi=3.14;//静态局部变量
}
静态全局变量:与全局变量相比,只有定义静态全局变量的文件可以访问该变量,项目中其它文件不可以访问该变量。
static string str="abc"; //静态全局变量
static int a; //静态全局变量
static double pi=3.14; //静态全局变量
void func()
{
}
int main()
{
}