点击上方 蓝字 关注我呀!

[C++基础入门] 6、函数

文章目录

  • 6 函数

    • 6.1 概述

    • 6.2 函数的定义

    • 6.3 函数的调用

    • 6.4 值传递

    • 6.5 函数的常见样式

    • 6.6 函数的声明

    • 6.7 函数的分文件编写

6 函数

6.1 概述

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

一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。

6.2 函数的定义

函数的定义一般主要有5个步骤:

1、返回值类型

2、函数名

3、参数表列

4、函数体语句

5、return 表达式

语法:

返回值类型 函数名 (参数列表){       函数体语句       return表达式}
  • 返回值类型 :一个函数可以返回一个值。在函数定义中

  • 函数名:给函数起个名称

  • 参数列表:使用该函数时,传入的数据

  • 函数体语句:花括号内的代码,函数内需要执行的语句

  • return表达式:和返回值类型挂钩,函数执行完后,返回相应的数据


**示例:**定义一个加法函数,实现两个数相加

//函数定义int add(int num1, int num2){    int sum = num1 + num2;    return sum;}

6.3 函数的调用

**功能:**使用定义好的函数

语法:函数名(参数)

示例:

//函数定义int add(int num1, int num2) //定义中的num1,num2称为形式参数,简称形参{    int sum = num1 + num2;    return sum;}int main() {    int a = 10;    int b = 10;    //调用add函数    int sum = add(a, b);//调用时的a,b称为实际参数,简称实参    cout << "sum = " << sum << endl;    a = 100;    b = 100;    sum = add(a, b);    cout << "sum = " << sum << endl;    system("pause");    return 0;}

总结:函数定义里小括号内称为形参,函数调用时传入的参数称为实参

6.4 值传递

  • 所谓值传递,就是函数调用时实参将数值传入给形参

  • 值传递时,

    如果形参发生,并不会影响实参


示例:

void swap(int num1, int num2){    cout << "交换前:" << endl;    cout << "num1 = " << num1 << endl;    cout << "num2 = " << num2 << endl;    int temp = num1;    num1 = num2;    num2 = temp;    cout << "交换后:" << endl;    cout << "num1 = " << num1 << endl;    cout << "num2 = " << num2 << endl;    //return ; 当函数声明时候,不需要返回值,可以不写return}int main() {    int a = 10;    int b = 20;    swap(a, b);    cout << "mian中的 a = " << a << endl;    cout << "mian中的 b = " << b << endl;    system("pause");    return 0;}

总结:值传递时,形参是修饰不了实参的

6.5 函数的常见样式

常见的函数样式有4种

  1. 无参无返

  2. 有参无返

  3. 无参有返

  4. 有参有返

示例:

//函数常见样式//1、 无参无返void test01(){    //void a = 10; //无类型不可以创建变量,原因无法分配内存    cout << "this is test01" << endl;    //test01(); 函数调用}//2、 有参无返void test02(int a){    cout << "this is test02" << endl;    cout << "a = " << a << endl;}//3、无参有返int test03(){    cout << "this is test03 " << endl;    return 10;}//4、有参有返int test04(int a, int b){    cout << "this is test04 " << endl;    int sum = a + b;    return sum;}

6.6 函数的声明

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

  • 函数的声明可以多次,但是函数的定义只能有一次

示例:

//声明可以多次,定义只能一次//声明int max(int a, int b);int max(int a, int b);//定义int max(int a, int b){  return a > b ? a : b;}int main() {  int a = 100;  int b = 200;  cout << max(a, b) << endl;  system("pause");  return 0;}

6.7 函数的分文件编写

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

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

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

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

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

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

示例:

//swap.h文件#includeusing namespace std;//实现两个数字交换的函数声明void swap(int a, int b);
//swap.cpp文件#include "swap.h"void swap(int a, int b){  int temp = a;  a = b;  b = temp;  cout << "a = " << a << endl;  cout << "b = " << b << endl;}
//main函数文件#include "swap.h"int main() {    int a = 100;    int b = 200;    swap(a, b);    system("pause");    return 0;}

希望文章对大家有所帮助,如果有错误或不足之处,还请海涵。真心想把自己所学所感所做分享出来,还请各位多多指教,真诚邀请您的关注!谢谢。

点个赞,证明你还爱我

swap函数_[C++基础入门] 6、函数相关推荐

  1. Python oct 函数 - Python零基础入门教程

    目录 一.Python oct 函数简介 二.Python oct 函数使用 1.Python chr 函数将 ascll 码转为字符 2.Python ord 函数将字符转为 ascll 码 三.猜 ...

  2. 数据结构和算法_零基础入门01

    数据结构和算法_零基础入门01 一.数据结构是什么? 逻辑结构.物理结构 二.算法 算法的五个基本特征 算法设计的要求 b站学习小甲鱼的数据结构与算法,自留笔记. 程序设计=数据结构+算法 一.数据结 ...

  3. Python help 函数 - Python零基础入门教程

    目录 一.Python help 函数简介 二.Python help 函数使用 1.查看内置函数的帮助信息 2.查看数据类型的帮助信息 三.猜你喜欢 基础 Python 学习路线推荐 : Pytho ...

  4. Python next 函数 - Python零基础入门教程

    目录 一.Python next 函数简介 二.Python next 函数使用 三.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 ...

  5. Python min 函数 - Python零基础入门教程

    目录 一.Python min 函数简介 二.Python min 函数使用 三.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一. ...

  6. Python reload 函数 - Python零基础入门教程

    目录 一.Python reload 函数简介 二.Python reload 函数使用 三.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Python 基 ...

  7. Python max 函数 - Python零基础入门教程

    目录 一.Python max 函数简介 二.Python max 函数使用 三.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一. ...

  8. Python globals 函数 - Python零基础入门教程

    目录 一.Python globals 函数语法 二.Python globals 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pytho ...

  9. Python locals 函数 - Python零基础入门教程

    目录 一.locals 函数语法 二.locals 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.locals ...

最新文章

  1. Java 第四周总结
  2. Docker容器基本使用
  3. 中国铁路官宣:高铁Wi-Fi将融合5G技术
  4. android 开机打开串口失败,请大神帮我看看这是怎么回事,一用就说串口打开失败,再电脑上试...
  5. centos7 python3 爬虫登陆邮箱_使用爬虫爬取超星学习通的作业时间并且通过邮件提醒!...
  6. Windows平台安装flutter之初体验(安装教程)
  7. 【Verilog基础】Verilog语法之标量(Scalar)与向量(Vector)
  8. 华为VRRP-基于交换机的VRRP配置
  9. eth入门之web2 与 web3 的对比
  10. vue动态切换背景图片background
  11. linux or msys2设置网络代理
  12. ctab提取dna流程图_CTAB法提取植物DNA原理以及步骤
  13. H5canvas(保存图片,globalCompositeOperation)
  14. 微信H5移动端真机调试--vConsole
  15. Android集成微信支付之-天坑
  16. 【电路】自用人体感应灯(HC-SR501人体感应模块)
  17. 德语语法笔记——冠词的用法
  18. 【PPP概念股龙头】PPP再迎风口 相关概念股表现格外抢眼(2)
  19. 基于Javaweb的小项目(类似于qqzone)1——设计数据库
  20. 微博评论数据爬取以及分析

热门文章

  1. java调用指定浏览器打开指定网址
  2. electron 打开调试_构建基于 iOS 模拟器的前端调试方案
  3. 什么是python装饰器_深入理解 Python 装饰器
  4. mybatis中转义 大于,小于,大于等于,小于等于
  5. SpringBoot注解@Value取值取不到问题
  6. MYSQL5.7离线安装报libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.29-1.el7.x86_64
  7. mysql8开启远程访问
  8. image.merge图像有什么变化_经常用到压缩软件的你,知道什么是无损压缩和有损压缩吗?...
  9. 一次mongoengine查询速度慢的优化
  10. Hbuilder连接安卓模拟器,调试app