C ++中静态,自动,全局和局部变量之间的区别
这里有两个单独的概念-
范围,它确定可以在哪里访问名称-全局和本地
存储持续时间,它确定何时创建和销毁变量-静态和自动
范围
局部变量只能由该函数或代码块内的语句使用。局部变量本身并不为函数所知。
示例
#include <iostream>using namespace std;
int main () {
//局部变量声明:
int a, b;
int c;
//实际初始化
a = 10;
b = 20;
c = a + b;
cout << c;
return 0;
}
这将给出输出-
输出结果
30
全局变量是在所有函数之外定义的,通常在程序顶部。全局变量将在程序的整个生命周期内保持其值。全局变量可以由任何函数访问。
示例
#include <iostream>using namespace std;
//全局变量声明:
int g;
int main () {
//局部变量声明:
int a, b;
//实际初始化
a = 10;
b = 20;
g = a + b;
cout << g;
return 0;
}
这将给出输出-
输出结果
30
储存期
自动变量是局部变量,其生存期在执行离开其范围时结束,并在重新进入范围时重新创建。
示例
for (int i =0 0; i < 5; ++i) {int n = 0;
printf("%d ", ++n); // prints 1 1 1 1 1 - the previous value is lost
}
静态变量的生命周期一直持续到程序结束。如果它们是局部变量,则当执行离开其作用域时,它们的值将保留。
for (int i = 0; i < 5; ++i) {static int n = 0;
printf("%d ", ++n); // prints 1 2 3 4 5 - the value persists
}
注意,除静态存储持续时间外,static关键字具有各种含义。同样,在C ++中,auto关键字不再意味着自动存储时间;它现在意味着自动类型,该类型是从变量的初始化程序推导出的。
以上是 C ++中静态,自动,全局和局部变量之间的区别 的全部内容, 来源链接: utcz.com/z/357672.html