【发布时间】:2016-10-21 02:26:55
【问题描述】:
我正在尝试使用静态变量作为函数被调用次数的计数器。本质上,我让函数 A 多次调用函数 B,我希望函数 B 将该值返回给函数 A,以便显示它。下面是我的测试代码示例(这里 main 是函数 A,showStat 是函数 B)。截至目前,输出为 012340;所需的输出是 012344。提前致谢。
int showStat()
{
static int statNum;
cout<<statNum; //function check
statNum++;
return statNum;
}
int main()
{
int statNum;
for( int i = 0; i < 5 ; i++)
{
showStat();
}
cout<<statNum;
return 0;
}
【问题讨论】:
-
这两个符号
statNum是不相关的(并且您的代码无论如何都会表现出未定义的行为)。要更改为所需的输出,请将调用showStat();更改为statNum = showStat() - 1; -
或者把statNum改成类中的全局静态变量,去掉其他所有初始化