当前位置: 首页 > news >正文

C语言(函数和递归)

函数是完成特定任务的独立程序代码单元。

目录

一.函数

1.创建一个简单的函数

2.定义带形式参数的函数

3.使用return从函数中返回值

二.递归

一.函数

1.创建一个简单的函数

#include <stdio.h>

void print(void);       //函数原型

int main(){

    print();            //函数调用

    return 0;

}

void print(void){       //函数定义

    printf("hello world");

}

这里print就是一个函数,该函数的任务是打印"hello world"

这里要注意这边出现了三个print。而这三个声明的作用都各不相同

void print(void);       //函数原型

函数原型指明了函数的返回值类型和函数接受的参数类型。这些信息称为该函数的签名。对于print函数而言,其签名是该函数没有返回值(第一个void),没有参数(第二个void)

而在main()函数中的print(),则为函数调用

void print(void){       //函数定义

    printf("hello world");

}

就是来定义函数的任务

 

 

2.定义带形式参数的函数

实参:调用函数时赋给形参类型的值

形参:函数内的值。

void show_n_char(char ch,int num)

该行告知编译器show_n_char()使用两个参数ch和num,ch是char类型,num是int类型。这两个变量被称为形式参数(形参)。和定义在函数中变量一样,形式参数也是局部变量,属该函数私有。

而如果要使用该函数

Show_n_char(SPACE,12),这里的SPACE,12则叫实际参数,实际参数有主函数(main)传递到特定函数中。

而一般我们只函数类型指的都是函数返回值的类型,这里是void。

而函数签名指的是函数的返回类型和函数所接受的参数类型。

3.使用return从函数中返回值

 

这里imin函数判定出最小的值返回给主函数

二.递归

C允许函数调用它自己,这种调用过程被称为递归。

首先,main()调用了带参数1的up_and_down()函数,执行结果是up_and_down()中的心事参数n的值是1,所以打印语句//1打印Level 1。然后,由于n小于4,up_and_down()(第一级)调用实际参数为n+1(2)的up_and_down()(第二级)。于是第2级调用中的n的值是2,打印语句//1打印Level2.与此类似,下面两次调用打印的分别是Level 3 和Level 4。

当执行第四级时,n的值是4,所以if测试条件为假。Up_and_down()函数不再调用自己。第四级调用接着执行打印语句//2,既打印Level 4.因为n的值是4,此时,第四级调用结束。控制被传回它的主调函数(即第三级调用)。一次类似直到第一次调用。

这里要注意,没级递归的变量n都属于本级递归私有


好了朋友们我们今天的内容到这就结束了,今天的内容到这里就结束了,如果有啥不会的朋友记得论坛里面提问哈~

如果朋友你感觉文章的内容对你有帮助,可以点赞关注文章和专栏以及关注我哈,嘿嘿嘿我会定期更新文章的,谢谢朋友你的支持哈

http://www.lryc.cn/news/8219.html

相关文章:

  • 快乐的shell命令行
  • 大数据面试题flume篇
  • 零信任-深信服零信任aTrust介绍(5)
  • UVa 1343 The Rotation Game 旋转游戏 IDA* BFS 路径还原
  • 硬件学习 软件Cadence day02 画原理图的基本操作 (键盘快捷键 , 原理图设计流程 , 从开始到导出网表流程)
  • 【python】基于Socket的聊天室Python开发
  • 2023想转行软件测试的看过来,你想要了解的薪资、前景、岗位方向、学习路线都讲明白了
  • TortoiseSVN的使用
  • 操作系统(day09) -- 连续分配管理方式
  • APISpace 带你一起走进西湖美景
  • 傻白探索Chiplet,Design Space Exploration for Chiplet-Assembly-Based Processors(十三)
  • 系统分析师真题2020试卷相关概念一
  • 20230215_数据库过程_渠道业务计算过程
  • 【C++】Expression的学习笔记
  • [数据库迁移]-MySQL常见问题
  • C语言编译过程
  • 前端学习 ---常用标签
  • 2023年PMP考试难不难?
  • Netty 入门
  • 收藏|一文掌握数据分析在企业的实际流程
  • 100ask_imx6ull 输出PWM
  • yolov5编译安卓APP:解决图像上全是检测框
  • 为什么我们需要地图?
  • 攻防世界1.新手练习区
  • Python进阶篇(二)-- Django 深入模型
  • ABAP SALV实现弹出ALV选择
  • git check-pick,git patch 与 git stash 详解
  • OA漏洞-到处搜集整理
  • web端接收读卡器卡片信息
  • BUUCTF-练习场-WEB-第一部分(8道)