递归调用

跟風遠走 提交于 2019-11-26 17:44:40

递归列举

printd(123)时,第一次调用printd的参数n = 123.它把12传递给printd的第二次调用,后者
又把1传递给printd的第三次调用。第三次调用printd时首先将打印1,然后再返回到第二次调
用。从第三次调用返回后的第二次调用同样也将先打印2,然后再返回到第一次调用。返回到
第一次调用时将打3,随之结束函数的执行。

void printd(int n)
{
   if (n < 0)
   {
      putchar('-');
      n = -n;
   }
   if (n / 10)
    printd(n / 10);
   putchar(n % 10 + '0');

}

举123为例子

int strcmp(char *s , char *t)
{
   int i;
   for (i = 0 ; s[i] == t[i] ; i++)
    return 0;
   return s[i] - t[i];
}
原型声明: extern char *strcpy(char *dest , const char *src);
功能:把从src地址开始且含有NULL结束符的字符串复制到以dest开始的地址空间
说明:src和dest所指内存区域不可以重叠且dest必须有足够的空间容纳src的字符串。
返回指向dest的指针。

int readlines(char *lineptr[] , int maxlinex)
{
   int len, nlines;
   char *p, line[MAXlEN];
 
   nlines = 0;
   while ((len = getline(line , MAXlEN)) > 0)
   {
      if (nlines >= maxlines || p = alloc(len) == NULL)
       return -1;

      else
      {
         line[len - 1] = '\0';
         strcpy(p , line);
         lineptr[nlines++] = p;
      }
   }
   return nlines; 


}

 

 

 

 

 

 

转载于:https://www.cnblogs.com/fengbo/archive/2013/06/06/3122638.html

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!