首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

在回调函数中使用static的有关问题

2012-03-31 
在回调函数中使用static的问题代码为:C/C++ code#include iostreamusing namespace stdint print(int x

在回调函数中使用static的问题
代码为:

C/C++ code
#include <iostream>using namespace std;int print(int x){    static int sum=0;    if(x>=1){         sum=sum+x;        print(x-1);        return sum;    }    else{        return 0;    }        }int main(){    cout<<print(5)<<endl;    return 0;}

  有一个问题不懂!在print()函数的回调过程中,会多次指向此函数,即从static处执行!即每次执行都会重新定义sum对象,那为什么不出现多次定义的问题!?难道函数在调用自身的时候,对函数体中的定义语句只指向一次???每次执行static int sum=0;怎么sum还会保存住每次函数调用执行结束时的值。是不是此语句只指向一次!!

[解决办法]
每次执行static int sum=0;怎么sum还会保存住每次函数调用执行结束时的值

这个是静态变量的一个特性 具体百度一下

热点排行