我是靠谱客的博主 纯情西装,最近开发中收集的这篇文章主要介绍递归函数 const关键字,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

//
//  main.m
//  LesssonRecursion
//
//  Created by lanouhn on 14-7-31.
//  Copyright (c) 2014年 Summer. All rights reserved.
//

#import <Foundation/Foundation.h>
void eatAppleSummer(int number)
{
    //对于递归来说,必须要有出口,也就是递归的结束标志.必有需要有结束,否则会形成死循环
    if (number == 0) {
        return;//return 后面没有内容,代表返回值类型为空void.
    }
    number--; //苹果个数减一  number = 3 //留一个苹果
    printf("Summer eat P%d applen", 6 - number);//吃了一个苹果 //吃苹果
    eatAppleSummer(number); //找自己吃苹果  //找人
}
//将一个整数正序输出 以及 逆序输出
//例子: 54321 正序(Positive Sequence): 54321 逆序(Reverse order): 12345
void printfPositiveSequence(int n)
{
    if (n == 0) {
        return; //如果没有可挑选的数字,直接返回,递归结束
    }
    //1.留一个数
    int number = n % 10;//保存留下的数
    //2.找下一个人
    printfPositiveSequence(n / 10);
    //3.输出留下的数
    printf("%d", number);
}
void printfReverseOrder(int n)
{
    if (n == 0) {
        return; //如果没有可挑选的数字,直接返回,递归结束
    }
    //1.留一个数
    int number = n % 10;//保留存下的数
    //2.输出留下的数
    printf("%d", number);
    //3.找下一个人
    printfReverseOrder(n / 10);
}

//求阶乘(Factorial), 5!
int printfFactorial(int n)
{
    //出口
    if (n == 1) {
        return 1;//如果求1的阶乘直接返回1
    }
    //1.留一个数
    int number = n;
    //2.求得n - 1的阶乘
    int value = printfFactorial(n - 1);
    //3.求n的阶乘
    return number * value;
}

int main(int argc, const char * argv[])
{
//    eatAppleSummer(6);
//    printfPositiveSequence(54321);
//    printf("n");
//    printfReverseOrder(54321);
//    printf("n");
//    printf("%d", printfFactorial(30));
    
    //const 关键字
    //const 修饰变量,把变量当做常量来看待,只能读,不可写
    int a = 10;
    int b = 2;
    //const 修饰谁,谁不可变
    //const 修饰*p不能通过指针变量p修改指向空间的内容,但是p可以重指向
    const int *p = &a;
    //测试
//    *p = 20;
//    p = &b;
    //const 修饰*p1不能通过指针变量*p1修改指向空间的内容,但是p1可以重指向
    int const *p1 = &a;
    //测试
//    *p1 = 20;
//    p1 = &b;
    //const 修饰p2, p2不可以重指向,但是可以通过*p2修改指向空间的内容
    int * const p2 = &a;
    //测试
//    *p2 = 20;
//    p2 = &b;
    //const 修饰p3以及*p3, p3 不可以重指向,也不可以通过*p3修改修改指向空间的内容
    const int * const p3 = &a;
    //测试
//    *p3 = 20;
//    p3 = &b;
    //const 让程序安全
//    strlen(<#const char *#>)
    
    return 0;
}

最后

以上就是纯情西装为你收集整理的递归函数 const关键字的全部内容,希望文章能够帮你解决递归函数 const关键字所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(40)

评论列表共有 0 条评论

立即
投稿
返回
顶部