在回调函数中使用static的有关问题
在回调函数中使用static的问题
代码为:
有一个问题不懂!在print()函数的回调过程中,会多次指向此函数,即从static处执行!即每次执行都会重新定义sum对象,那为什么不出现多次定义的问题!?难道函数在调用自身的时候,对函数体中的定义语句只指向一次???每次执行static int sum=0;怎么sum还会保存住每次函数调用执行结束时的值。是不是此语句只指向一次!!
------解决方案--------------------
每次执行static int sum=0;怎么sum还会保存住每次函数调用执行结束时的值
这个是静态变量的一个特性 具体百度一下
代码为:
- 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还会保存住每次函数调用执行结束时的值
这个是静态变量的一个特性 具体百度一下