关于c ++:函数内声明的静态变量的值是多少?

What is the value of the static variable declared inside a function?

本问题已经有最佳答案,请猛点这里访问。

在函数内部声明静态整型变量。调用函数时,变量的增量为1。函数被调用并返回3次。第三个函数调用中变量的值是什么?返回时的值是什么?


1
2
3
4
5
int foo() {
   static int x = 0;
   x++;
   return x;
}

关键字static的作用是将变量的生存期延长到程序的生存期;例如,初始化只发生一次和一次,然后变量在将来对foo()的所有调用中保留其值(无论它是什么)。


当我们将类的成员声明为静态时,这意味着无论创建了多少个类对象,静态成员都只有一个副本。静态成员由类的所有对象共享。

因此,如果其值以0开头,它将返回3