: cannot convert from 'int (__cdecl *)(int)' to 'int'是什么意思

来源:百度知道 编辑:UC知道 时间:2024/06/11 08:57:26
#include <iostream.h>

int a(int n)
{ int i;
if(i=1)
a(1)=1;
if(i>=2)
a(i)=2*a(i-1);
return a;
}
int main()
{ int n,b; int a(n);
cin>>n;
b=a(n);
cout<<b;
return 0;
}

您这程序里的 a(n) 有问题.

1.a(n) 是数组还是函数? 数组应该是 a[n] 这样定义的.而且在标准C++中的数组定义中的序必须是常量,如 int a[10] 这样定义的.
2.从上面代码来看,您的a(n)应该是个函数.这个函数有个参数int n,但是这个n在您的函数体里面根本没有使用到,而且在这个函数体里面,您定义了个int i,这个i没有初始值.这两个地方在编译运行的时候,都不会出错.

出错的地方在于: int a(n); 您声明a(n)这个函数的时候有问题.标准C++中,函数体内是不可能声明另外一个函数的.int main()就是一个函数.

建议楼主多看看C/C++语法之类的有关资料和书籍.
可以参看一下: http://ferrywong.bokee.com/2912063.html