IOS成长中 C语言之递归

来源:互联网 发布:赫拉胶原眼霜淘宝 编辑:程序博客网 时间:2024/04/30 15:42

知识点概括:

                  1.递归

                  2.const


函数递归:

在函数调用中,如果直接或间接地调用该函数本身,称为递归调用.递归调用有时也称为循环定义.

对于递归来说,必须要出口,也就是递归的结束标志,必须要有结束,否则就会形成死循环

return 后面啥都不写,代表返回值类型为空void

const

修饰变量,把变量当做常量来看待,只能读不能写

const  让程序安全

修饰谁,谁就不可变

const int *p = &a;

const修饰*p,不能通过指针变量p修改指向空间的内容,但是p可以重指向

int * const p2 = &a;

const 修饰p2, p2不可以重指向,但是可以通过p2修改指向空间的内容

const int * const p3 = &a;

修饰 p3 以及 *p3, p3不可以重指向,也不可以通过*p3修改指向空间的内容


void eatAppleXiaoMeng(int n) {    //对于递归来说,必须要出口,也就是递归的结束标志,必须要有结束,否则就会形成死循环    if (n == 0) {        return;   //return 后面啥都不写,代表返回值类型为空void    }    n--;   //留一个苹果    printf("小萌吃第%d个苹果\n", 4 - n);  //吃了一个苹果    eatAppleXiaoMeng(n);    //找自己吃苹果}//讲一个整数正序输出, 以及 逆序输出//例子: 54321 正序:54321 逆序:12345void zhengXu(int n) {    if (n == 0) {        return;  //如果没有可挑选的数字,直接返回,递归结束    }    //.留一个数    int number = n % 10;    //2.找下一个人    zhengXu(n / 10);    //3.输出留的数    printf("%d", number);}void niXu(int n) {    if (n == 0) {        return;    }    int number = n % 10;    printf("%d",number);    niXu(n / 10);}//求阶乘,5!int jieCheng(int n) {    if (n == 1) {        return 1;  //如果求1的阶乘,直接返回1    }    int number = n;    int value = jieCheng(n - 1);    return number * value;}

    eatAppleXiaoMeng(4);    zhengXu(54321);    niXu(54321);    printf("%d", jieCheng(10));    //const    //const 修饰变量,把变量当做常量来看待,只能读不能写    const int b = 10;    b = 5;    //const 修饰谁,谁就不可变    int a = 10;    int b = 20;        const int *p = &a;    //const修饰*p,不能通过指针变量p修改指向空间的内容,但是p可以重指向    p = &b;    *p = b;    int const *p1 =&a;    //const修饰*p,不能通过指针变量p1修改指向空间的内容,但是p1可以重指向    int * const p2 = &a;    //const 修饰p2, p2不可以重指向,但是可以通过p2修改指向空间的内容    *p2 = b;    p2 = &b;    const int * const p3 = &a;    //const 修饰 p3 以及 *p3, p3不可以重指向,也不可以通过*p3修改指向空间的内容            //const  让程序安全    strlen(const char *)














0 0