局部变量、全局变量和静态变量是在程序中用于存储数据的不同类型的变量,它们的作用域和生命周期不同。
- 局部变量:
- 局部变量是在函数内部声明的变量,只能在声明它们的函数内部访问。
- 它们的作用域仅限于声明它们的函数内部,函数执行完毕后会被销毁。
- 局部变量存储在栈上,因此它们的生命周期与函数调用的开始和结束相关联。
void exampleFunction() {
int localVar; // 局部变量
// ...
}
- 全局变量:
- 全局变量是在函数外部声明的变量,可以在程序的任何地方访问。
- 它们的作用域从声明处开始,直到文件结束,可以被程序中的所有函数访问。
- 全局变量存储在数据段,其生命周期贯穿整个程序的运行周期。
int globalVar; // 全局变量
void exampleFunction() {
// 可以访问全局变量 globalVar
// ...
}
- 静态变量:
- 静态变量可以在函数内部或全局范围声明,但其作用域与局部变量或全局变量不同。
- 在函数内部声明的静态变量作用域为整个函数,但其生命周期贯穿程序运行周期。
- 在全局范围声明的静态变量的作用域和生命周期与全局变量相同,但它们仅限于当前文件。
void exampleFunction() {
static int staticVar; // 函数内部的静态变量
// ...
}
static int globalStaticVar; // 全局范围的静态变量
总之,局部变量只能在其声明的函数内部访问,全局变量可以在整个程序中访问,而静态变量在作用域内保持其值并可保持全局或局部作用域。
标签:变量,静态,局部变量,作用域,全局变量,函数 From: https://www.cnblogs.com/keep--fighting/p/17728070.html