前端开发35岁以后干什么河南纯手工seo
指针函数
是指函数返回值为地址值的函数
定义:
<数据类型> *<函数名称> (<参数说明>)
{
语句序列;
}
指针函数的返回值:全局变量的地址/static变量的地址/字符串常量的地址
用指针函数删除字符串中的空格
char *del(char *x);int main()
{char a[]="he ll o";char *pa;printf("%s\n",a);pa = del(a);printf("%s\n",pa);return 0;
}char *del(char x[])
{char *px = x;char *s =x;while(*x != '\0'){if(*x != ' '){*px = *x;px++;x++;}else{x++;}}*px = '\0';return s;
}
指针函数替代strcat函数
#include <stdio.h>char *link(char a[],char b[]);int main()
{char tar[20]="hello";//注意容量问题char m[]="world";char *p;puts(tar);p = link(tar,m);puts(p);return 0;
}char *link(char a[],char b[])
{char *pa = a;char *pb = b;char *s = a;while(*pa != '\0'){pa++;}while(*pb != '\0'){*pa = *pb;pa++;pb++;}*pa = '\0';return s;
}
递归函数
指一个函数直接或间接调用函数本身
递归函数调用执行过程分为两个阶段
递推阶段:从原问题出发,按照递归公式递推从未知到已知,最终到达递归终止条件
回归阶段:按递归终止条件求出结果,并逐步带入递归公式,回归到原问题求解
例题:计算N的阶乘
以计算5的阶乘为例,从编程逻辑结合递归函数概念可以列出下表
5!=5*(5-1)! |
4!=4*(4-1)! |
3!=3*(3-1)! |
2!=2*(2-1)! |
1!=1 |
所以递归函数的终止条件就是当N=1时,这个就是递推阶段所求目标
已知N=1是终止条件,我们就可以把N带回到递推公式中,最终求得N的阶乘
#include <stdio.h>int level(int a);int main()
{int n;int lev;scanf("%d",&n);lev=level(n);printf("%d",lev);return 0;
}int level(int a)
{if(a==0 || a==1){return 1;}elsereturn a*level(a-1);
}