我正在尝试使用静态变量作为计数器来调用函数的次数。本质上,我让函数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;
}

最佳答案

总的来说,改变

showStat();




statNum = showStat();


您有两个名为statNum的变量。显然,计数发生在showStat()函数内部的静态变量中。但是在main()中,没有读取showStat()的返回值,您只是在打印未初始化的局部变量,编译器恰巧将其分配给初始值0。

关于c++ - 静态变量的返回值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/40167412/

10-13 23:54