一个函数的变量只在首次使用这个函数时进行定义,后续的调用均不进行定义,然后每次调用时值会发生改变,应该使用什么样的变量?
如果想在函数首次调用时进行初始化,然后在每次调用函数时保留其状态并允许其值在每次调用之间发生变化,可以使用静态局部变量。静态局部变量在首次函数调用时进行初始化,然后在后续的函数调用中保持其值不变。
以下是一个C++示例,演示了如何使用静态局部变量来实现这种行为:
#include <iostream>
int my_function() {
static int my_variable = 0; // 使用static关键字定义静态局部变量,在首次调用时初始化
my_variable += 1; // 在每次函数调用时改变值
return my_variable;
}
int main() {
std::cout << my_function() << std::endl; // 输出 1(首次调用初始化)
std::cout << my_function() << std::endl; // 输出 2(每次调用值发生变化)
return 0;
}