十、函数

(1)函数的定义

作用:将一段经常使用的代码封装起来,减少重复代码。

组成

1.返回值类型:一个函数可以返回一个值。

2.函数名:函数的名称。

3.参数列:使用函数时,传入的数据。

4.函数体语句:花括号内的代码,函数内需要执行的语句,用户代码。

5.return表达式:和返回值类型匹配。函数执行完后,返回相应数据。

参考视频:https://www.bilibili.com/video/BV1et411b73Z?from=search&seid=4205594350351753444

已投币三连,非常好的视频教程,感谢up主的奉献。

语法

返回值类型  函数名 (参数列表)
{函数体语句return表达式
}int add (int num1, int num2)
{int sum = num1 + num2;return sum;
}int main(){/* 用户代码段 */// ...// ...system("pause");return 0;
}

(2)函数的调用,形参,实参

#include <iostream>
using namespace std;// 函数定义
int add(int num1, int num2) // int num1, int num2为形式参数,简称形参
{int sum = num1 + num2;return sum;
}int main() {// a,b称为 实际参数,简称实参int a = 11, b = 23;// 调用add函数int sum = add(a, b);cout << "a + b = " << sum << endl;system("pause");return 0;
}
------------------------------------------------------------------------
a + b = 34
请按任意键继续. . .

(3)值传递

要点:实参传递给形参后,形参的改变不会影响到实测。

#include <iostream>
using namespace std;// 函数定义
int test1(int num1, int num2)
{cout << "输入的 num1 = " << num1 << endl;cout << "输入的 num2 = " << num2 << endl;cout << endl;num1 += 10;num2 += 20;cout << "输出的 num1 = " << num1 << endl;cout << "输出的 num2 = " << num2 << endl;cout << endl;return 0;
}int main() {// a,b称为 实际参数,简称实参int a = 11, b = 23;cout << "a = " << a << endl;cout << "b = " << b << endl;cout << endl;// 调用add函数test1(a, b);cout << "a = " << a << endl;cout << "b = " << b << endl;cout << endl;system("pause");return 0;
}
----------------------------------------------------------------------
a = 11
b = 23输入的 num1 = 11
输入的 num2 = 23输出的 num1 = 21
输出的 num2 = 43a = 11
b = 23请按任意键继续. . .

(4)函数的常见样式

常见的函数样式有4种:

1.无参无返

2.有参无返

3.无参有返

4.有参有返

(5)函数的声明

作用:告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。

注意:函数的声明可以多次,但是函数的定义只能有一次。

#include <iostream>
using namespace std;// 函数的声明
int test1(int num1, int num2);int main() {// a,b称为 实际参数,简称实参int a = 11, b = 23;cout << "a = " << a << endl;cout << "b = " << b << endl;cout << endl;// 调用add函数int max = test1(a, b);cout << "较大值 = " << max << endl;system("pause");return 0;
}// 函数定义
int test1(int num1, int num2)
{return num1 > num2 ? num1 : num2;
}
------------------------------------------------------------------
a = 11
b = 23较大值 = 23
请按任意键继续. . .

(6)函数的分文件编写

函数太多,不能写同一个文件中。而且功能混淆,不便于梳理、阅读、移植。

作用:让代码结构更加清晰。

函数的分文件编写一般有4个步骤:

1.创建后缀名为.h的头文件

2.创建后缀名为.cpp的源文件

3.在头文件中写函数的声明

4.在源文件中写函数的定义

将(5)的代码分文件编写:

demo.cpp

#include <iostream>
using namespace std;
#include "swap.h"int main() {// a,b称为 实际参数,简称实参int a = 11, b = 23;cout << "a = " << a << endl;cout << "b = " << b << endl;cout << endl;// 调用add函数int max = swap(a, b);cout << "较大值 = " << max << endl;system("pause");return 0;
}

swap.cpp

#include "swap.h"// 函数定义
int swap(int num1, int num2)
{return num1 > num2 ? num1 : num2;
}

swap.h

#include <iostream>
using namespace std; // 函数的声明
int swap(int num1, int num2);

c/c++教程 - 1.8 函数 形参 实参 值传递 声明调用 函数的分文件编写相关推荐

  1. 【C 语言】字符串模型 ( 字符串翻转模型 | 抽象成业务函数 | 形参返回值 | 函数返回值 | 函数形参处理 | 形参指针判空 )

    文章目录 一.字符串翻转模型 业务函数 二.完整代码示例 一.字符串翻转模型 业务函数 将上一篇博客 [C 语言]字符串模型 ( 字符串翻转模型 ) 的代码 , 主要业务逻辑 , 抽象成函数 ; 字符 ...

  2. 【C 语言】字符串模型 ( 两头堵模型 | 将 两头堵模型 抽象成业务模块函数 | 形参返回值 | 函数返回值 | 形参指针判空 | 形参返回值操作 )

    文章目录 一.将 两头堵模型 抽象成业务模块函数 二.完整代码示例 一.将 两头堵模型 抽象成业务模块函数 将 两头堵模型 抽象成业务模块函数 相关要点 : 形参返回值 : 函数的返回值 , 一般使用 ...

  3. 函数||值传递||函数的常见样式||函数的声明||函数的分文件编写

    概述 作用:将一段经常使用的代码封装起来,减少重复代码 一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能. 函数的定义 函数的定义一般主要有5个步骤: 1.返回值类型 2.函数名 3.参数 ...

  4. C++阶段01笔记06【函数(概述、定义、调用、值传递、常见样式、声明、分文件编写)】

    C++| 匠心之作 从0到1入门学编程[视频+课件+笔记+源码] 目录 6 函数 6.1 概述 6.2 函数的定义 函数的语法 示例:加法函数 6.3 函数的调用 示例 6.4 值传递 示例 6.5 ...

  5. 函数指针,指针函数,返回值为指针的函数

    摘要: 在学习C语言时,一个比较容易混淆的概念就是函数指针.指针函数.返回值为指针的函数.本文将对这三个概念进行区分.指针函数就是返回值为指针的函数,两个本质上是同一事物,只是叫法不同.函数指针就是一 ...

  6. python重复执行函数_Python threading 单线程 timer重复调用函数

    项目中需要使用定时器,每次都使用构造器函数调用: timer = threading.Timer(timerFlag, upload_position) timer.start() 打印线程后发现,每 ...

  7. R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值、plot.roc函数绘制ROC曲线、添加置信区间、为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来

    R语言使用pROC包绘制ROC曲线实战:roc函数计算AUC值.plot.roc函数绘制ROC曲线.添加置信区间.为回归模型中的每个因子绘制ROC曲线并在同一个图中显示出来 目录

  8. lisp语言100以内勾股数_三个视频搞定:函数的最值、对勾函数、分式函数性质与图像、分段函数最值...

    ● 本文适合高一上学期.高三一轮复习的同学阅读.先看视频再看文字,看视频时注意利用暂停,想清楚每一步变形的依据. 01 函数的最值.对勾函数的性质 视频讲解 1.函数的最大(小)值 说明: (1)最大 ...

  9. C++函数的分文件编写

    函数分文件编写一般有4个步骤 1. 创建后缀名为.h的头文件   2. 创建后缀名为.cpp的源文件 3. 在头文件中写函数的声明 4. 在源文件中写函数的定义 swap.h文件(相当于java的接口 ...

最新文章

  1. 快速索引 (对View的自定义)
  2. oracle numtodsinterval and numtoyminterval 使用法则
  3. linux中文输入法的安装方法
  4. SAP LIST 画框的FORM
  5. Codeforces 1344F Piet's Palette (线性代数、高斯消元)
  6. Python语法入门
  7. 以下哪些参数不是sqlmap中的_变频器控制中必须要设置哪些参数?
  8. CSS完美实现垂直居中-测试页
  9. PostFix postqueue 指令
  10. Java基础编程题:输入两个正整数,求它们的最大公约数和最小公倍数
  11. Java从入门到精通章节练习题——第三章
  12. LM317的调压原理与应用
  13. 京东淘宝等电脑网页打不开的解决办法
  14. 单词记忆 词根词缀记忆 总结
  15. 9.1 一切让代码行数说话——《逆袭大学》连载
  16. 日记:2019新年计划,每日计划的思维导图
  17. GB与BIG5内码转换COM原代码
  18. 互联网运营面试题_必看❗️面试互联网运营常见问题及答案
  19. 学习vue-vben-admin遇到的问题(一)
  20. Google Play 商品详情,考试内容

热门文章

  1. C++primer 9.5.5节练习
  2. Github 简明教程 - 操作标签
  3. 《设计模式详解》笔记目录
  4. Go 语言 Gin 框架实战项目笔记
  5. Windows域策略 设置客户端服务启动状态 【全域策略生效】
  6. Java连接并操作SQLServer数据库
  7. 脚本_vnote同步到hexo步骤[博]
  8. 用几小时,零基础也能学会可视化大屏,这百张模板帮了大忙
  9. (第十四章)创建储存过程与创建函数
  10. python中join和split使用