我写了一个递归函数,该函数应该能把一个指向数组的指针相加并把相加后的指针反回,函数实现如下,请高手帮忙看一看是否正确?#include "stdafx.h"
void a(char **ppc,int *inumber)
{
if(*inumber==1)
{
(*ppc)++;
}
else
{
(*inumber)--;
(*ppc)++;
a(ppc,inumber);
}
return ;
}int main(int argc, char* argv[])
{
char c[100],*pc;
int inumber=3;
pc=c;
pc++;
a(&pc,&inumber);
pc++;
return 0;
}

解决方案 »

  1.   

    基本上是對的。
    是不是應考慮一下inumber小于等于0的情況
      

  2.   

    看了半天不知道你的程序要做什么用,不过你的a函数肯定错了因为a函数的参数都是地址,在函数内部并没有重新改变这个地址,而是直接进行递归调用下一个a函数,这样你的a程序将无限的运行下去,直到系统资源用完。
      

  3.   

    语法没有错误,不过没什么作用,和下面的程序是一个功能
    char c[100],*pc;
    int inumber=3;
    pc=c;
    pc++;
    //a(&pc,&inumber);
             pc+=inumber;//<--
    pc++;
    return 0;
      

  4.   

    这个程序只是验证一下程序思路的正确性,事实上我就想让它做什么,正如Captaionlll所说的,它可以用其它更简单的代码代换,