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

C语言新手小白详细教程(6)函数

希望文章能够给到初学的你一些启发~ 如果觉得文章对你有帮助的话,点赞 + 关注+ 收藏支持一下笔者吧~

阅读指南:

  • 开篇说明
    • 为什么要使用函数?
      • 1.定义一个函数
      • 2.调用函数
      • 3.定义函数详解


开篇说明

截止目前,我们已经可以完成很多C语言的程序了,但这些程序都比较简单。如果你需要完成一个功能复杂的大项目,仍然按照目前的方法,所有代码平铺,从阅读和维护就会变得十分困难。所以我们引入了函数这个概念。
函数:完成特定人物的独立程序代码单元

为什么要使用函数?


  1. 省去编写重复代码的功夫
    例如之前学过的输入函数 scanf()和输出函数printf(),当我们需要执行输入输出任务时,不需要每次都编写完整的输入输出代码,只需要调用这两个函数即可。
  2. 可以让程序更加模块化
    即使只完成某项人物一次,也值得使用函数,因为函数让程序更加模块化,从而提高了代码的可读性。更方便后期修改,完善。

1.定义一个函数

所有在程序中用到的所有函数,都必须“先定义,再使用”

  1. 定义无参数函数
    结构为:
    类型名 函数名()
    {
    函数体
    }
  2. 定义有参数函数
    结构为:
    类型名 函数名(形式参数列表)
    {
    函数体
    }

2.调用函数

我们学习函数的目的就是为了调用函数,也就是使用函数。
调用函数的一般形式为:函数名(实参列表);
:实参列表可以没有,但括号不可以省略
例:

创建一个在一行打印40个星号的函数,并在一个打印表头的程序中使用该函数。

我们应该先定义一个函数,并在一个打印表头的程序中使用该函数。
然后编写一个主函数,在主函数中调用这个打印星号的函数。


#include <stdio.h>
void starbar()
{int i;for(i=1;i<=40;i++){printf("*");//循环输出40个星号}printf("\n");//换行
}
int main()
{starbar();//调用函数starbar()printf("name:\n");//输出提示信息printf("Address:\n");//输出提示信息printf("Number:\n");//输出提示信息return 0;
}

输出结果是这样子的:
在这里插入图片描述


3.定义函数详解

我们定义函数时,需要什么,定义什么就可以了
类型名 函数名(形式参数列表)
{
函数体
}

  • 类型名:和定义变量一样,告诉计算机你定义的类型是什么(int,char);并且你定义的函数会实现一些功能,实现了之后是否会返回(输出)一个结果,如果需要返回的,那么这个结果的类型是什么。
  • 函数名:起名字 等后面调用时调用。
  • 形式参数列表:定义函数所实现的功能,是否需要输入,如果需要就定义一个有参函数,不需要就定义一个无参函数。
  • 函数体,你需要实现的功能,和编写普通程序一样

    1.定义一个无形式参数的函数

在这里插入图片描述

  • 这个函数实现了一个打印特定语句“这是一个分割线的功能”
  • 不需要参数
  • 没有返回值,类型名就是void

输出结果是这样子的:
在这里插入图片描述


2.定义一个有形式参数的函数
在这里插入图片描述
输出结果是这样子的:
在这里插入图片描述

  • 这个函数的打印语句有一个变量num,这个变量来自形式参数列表。
  • 不同的参数会打印出不同的结果
  • 没有返回值,类型名就是void

3.定义一个有形式参数也有返回值的函数
在这里插入图片描述
输出结果是这样子的:
在这里插入图片描述

  • 这个函数的功能是比较a 和 b 的大小,并返回大的那一个。
  • 比较的变量来自参数列表
  • 比较的结果用return返回,这时类型名和返回值的类型一样,这里返回的值为int,所以类型名就是int。

意气风发,漫卷疏狂
学习是成长的阶梯,每一次`的积累都将成为未来的助力。我希望通过持续的学习,不断汲取新知识,来改变自己的命运,并将成长的过程记录在我的博客中

如果我的博客能给您带来启发,如果您喜欢我的博客内容,请不吝点赞、评论和收藏,也欢迎您关注我的博客。
您的支持是我前行的动力。听说点赞会增加自己的运气,希望您每一天都能充满活力!

愿您每一天都快乐,也欢迎您常来我的博客。我叫意疏,希望我们一起成长,共同进步。
logo
我是意疏 下次见!

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

相关文章:

  • 力扣1488.避免洪水泛滥
  • System类、BigDecimal类、Calendar类 用法详解
  • SQLTools插件下载与使用说明
  • 【人脸识别】数据集宝藏合集,速看!
  • mysql操作(进阶)
  • [000-01-025].第07节:WorkBench
  • JavaScript - 变量声明(let、const 和其他)
  • AC800PEC PC D231 3BHE025541R0101控制模块面价
  • 2024年3款免费录屏软件,你的电脑桌面上缺哪一个?
  • Python爬虫新手指南及简单实战
  • 如何有效开展产业链招商?
  • 爬虫中使用多进程、多线程的混合方式遇到的数据丢失问题
  • 多云应用安全平台RegData利用MongoDB简化数据控制和合规流程
  • VUE实现TAB切换不同页面
  • C++ 80行 极简扫雷
  • 常见VPS服务器附加组件一览
  • Electron 使用Electron-build 进行打包
  • Springboot+Websocket+Security+Vue 实现弹幕推送功能
  • LangChain之网络爬虫
  • VueRouter 相关信息
  • [环境配置]Pycharm:Failed to start [PowerShell.exe]
  • 搜狗爬虫(www.sogou.com)IP及UA,真实采集数据
  • 北京青蓝智慧科技ITSS服务经理:长安链ChainBridge“链桥”问世 加速国家级区块链网络互联互通
  • 音视频入门基础:WAV专题(5)——FFmpeg源码中解码WAV Header的实现
  • 爬虫:csv存储:写入和读取
  • Opencv-绘制几何图形
  • ElasticSearch安装与集群部署
  • 盘点12款企业常用源代码加密软件,源代码防泄密很重要!
  • 文件上传和下载
  • 机械学习—零基础学习日志(高数22——泰勒公式理解深化)