zoukankan      html  css  js  c++  java
  • iOS 阶段学习第七天笔记(函数、递归)

     iOS学习(C语言)知识点整理笔记

    一、函数

     1)概念:具有特定功能的代码块的封装

     2)函数的定义: 函数类型+函数名(形参列表)

         函数类型 函数名(形参类型1  形参名1,形参类型2   形参名2.....){

                函数体;//函数的实现

         }

     3)函数名要符合标示符的定义

     4)函数的返回类型可为空,为空用void;也可以是其他数据类型。

     5)void函数的调用:函数名(); void类型不能用任何类型去接收。

     6)int 类型函数的调用:定义int类型的数据去接收函数的返回值,例如: int sum=add(x,y); 有时候也可以忽略      返回值

     7)return 函数的返回 ,void函数的return语句可以省略也可以return 空,return语句可以有多条,以执行到的第一句为准。

     8)非void的其他类型,return 表达式类型要和定义的类型匹配

     9)返回类型与接收类型不匹配时不一定会报错,但会造成精度的损失,例如:int类型的函数用char类型接收

    10)函数的好处:将不同的功能实现封装起来,容易阅读和维护;便于分工,调用的人可以不关心具体的实现。

    11)函数使用的注意点:

        1、函数名要言之有物,名字和功能一致。

        2、接口要精简(形参,返回值)

        3、实现的功能要单一,不要混杂。

        4、对外的函数接口要由详细的注释

    12)局部变量:从变量定义的位置开始到定义所在的方法体的“}”结束

    13)函数运行的过程:

          1、给形参开辟空间

          2、实际参数给形式参数传值

          3、形式参数参与运算

          4、return 的时候形参销毁

    14)全局变量:定义在方法体外面的变量,优点所有函数都能访问,缺点所有函数都能修改不安全。

    15).c文件写方法的实现;.h文件放函数的声明。

    16)函数的声明: 函数返回类型   函数名(形参类型1  形参名1,形参类型2  形参名2....)。

    17)函数在main后面定义,但是必须要在main之前声明。

    18)头文件存放内容:

        1、函数的声明

        2、类型定义 #typedef

        3、宏定义 #define  

    19)函数都是平级的可以相互调用,也可以自己调用自己。

    二、递归

    1)概念:函数自己调用自己的一个过程

    2)递归的优点是使代码结构层次更清晰使程序更简洁,缺点是占用资源太多,可能造成堆栈溢出。

    3)使用递归算法 计算斐波拉契数列

    实现代码:

     1 int fblq(int n){
     2    if(n==1||n==2)
     3       return 1;
     4    else 
     5      return fblq(n-1)+fblq(n-2);
     6 }
     7 int main(){
     8   int len=20;
     9   for (int i=1; i<=len; i++) {
    10     printf("%d ",fblq(i));
    11   }
    12   return 0;
    13 }

     4)使用递归求两个数的最大公约数

    实现代码:

     1 int ComDiv(int x,int y){
     2     if(x%y==0)
     3        return y;
     4      else  
     5        return ComDiv(y,x%y);
     6 }
     7 
     8 int main(){
     9    printf(“%d”, ComDiv(28,35));
    10    return 0;
    11 }

     5)使用递归算法实现猴子吃桃问题的统计

    实现代码:

    1 int MonkeyEatPeach(int day){
    2     if(day==9)
    3       return 1;
    4 
    5     printf("day=%d
    ",day);
    6 
    7     return  2*MonkeyEatPeach(day+1)+2;
    8 }
  • 相关阅读:
    Kali Linux软件更新日报20190622
    Maltego更新到4.2.4.12374
    Kali Linux又增加一个顶级域名kali.download
    Nessus提示API Disabled错误
    数据包分析中Drop和iDrop的区别
    快速识别Hash加密方式hashid
    识别哈希算法类型hash-identifier
    vue实现前端导出excel表格
    vue自动化单元测试
    Mock制作假数据
  • 原文地址:https://www.cnblogs.com/ChinaKingKong/p/4599120.html
Copyright © 2011-2022 走看看