错误:表达式必须具有(指针到)功能类型

时间:2014-11-11 06:53:11

标签: c++ function pointers types

我正在写一个吐出所谓斯特林数的函数。我写的代码如下:

int SecondStirling(const int& k, const int&n){
    if(k<0||n<0) return 0;
    if(k==0 && n>0) return 0;
    if(k>0 && n==0) return 0;
    if(k>n) return 0;
    if(k==n) return 1;
    else return k(SecondStirling(k,n-1))+SecondStirling(k-1,n-1);
}

但是,我在最后一行收到错误:错误:表达式必须具有(指针到)功能类型,该错误特指k。是什么给了什么?

2 个答案:

答案 0 :(得分:3)

与数学不同,乘法运算符*不能省略。变化

k(SecondStirling(k,n-1))

k * (SecondStirling(k,n-1))

答案 1 :(得分:2)

写作

k(SecondStirling(k,n-1))

您正在尝试调用名为&#34; k&#34;的函数,或者指向&#34; k&#34;,接受int类型的单个参数(由SecondStirling返回)。 但是&#34; k&#34;是一个int变量,因此是错误。 正如已经指出的那样,正确的语法是

k * (SecondStirling(k,n-1))