请问c++中函数的参数可以定义为静态么?

来源:百度知道 编辑:UC知道 时间:2024/05/17 00:51:11
我想实现这样一个功能:有一个递归函数,需要用到一个全局变量,所以每次在主程序之中调用之前需要初始化这个变量,所以我想能不能将这个变量定义为静态的参数,或者在函数里面静态定义,但是好像都不行,高手帮我想个办法,谢谢!

可以阿,你在函数里面定义一个

static int a;

这个a就是静态的,相当于全局变量了。

例子:
#include "stdafx.h"
#include <iostream>
#include <string.h>
using namespace std;

void func()
{

static int a;
if(a == 50)
exit(0);
a++;
cout<<a<<"\n";
func();
}

int main()
{
func();
}

比如求n的阶乘
long f(int n)
{
static long t=1;
if (n==0 || n==1) return t;
t*=n;
f(n-1);
}

写成语句块:
{
_gMy = My();
func();
}

在C++中参数不可以为静态。但是在函数内部可以定义静态变量,其作用域在函数内,生存周期在整个程序的运行期间。