前段时间我写了一个类似的代码,但它有效,但由于某种原因,这不起作用,我无法弄清楚我遗漏或做错了什么。
int fn(int *pArg)
{
if(*pArg!=NULL)
return *pArg+fn(pArg+1);
else
return 0;
}
int main()
{
int nArray[128],i,nLenght;
std::cin>>nLenght;
for(i=1;i<=nLenght;i++)
std::cin>>nArray[i];
std::cout<<"The sum of the array is: "<<fn(nArray);
system("PAUSE");
return 0;
}
答案 0 :(得分:1)
这个程序在很多方面存在缺陷,其中之一就是
*pArg!=NULL
将int
与空指针常量进行比较。请改为pArg != NULL
。
(并注意fn
有缺陷;它将尝试递归,直到指针回绕到NULL
,但可能是由于堆栈溢出很久才发生。)
答案 1 :(得分:0)
std::cin>>a[i];
这一行应该是:
std::cin>>nArray[i];