递归列举
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;
}