概述

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

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


函数的定义

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

1、返回值类型

2、函数名

3、参数表列

4、函数体语句

5、return 表达式

#include <iostream>
using namespace std;
//函数定义
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;
}



值传递

#include <iostream>
using namespace std;
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;
}



函数的常见样式

常见的函数样式有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;
}


函数的声明

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

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

#include <iostream>
using namespace std;
//声明可以多次,定义只能一次
//声明
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;
}



函数的分文件编写

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

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

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

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

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

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

函数||值传递||函数的常见样式||函数的声明||函数的分文件编写相关推荐

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

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

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

    十.函数 (1)函数的定义 作用:将一段经常使用的代码封装起来,减少重复代码. 组成: 1.返回值类型:一个函数可以返回一个值. 2.函数名:函数的名称. 3.参数列:使用函数时,传入的数据. 4.函 ...

  3. C++模板学习02(类模板)(类模板语法、类模板与函数模板的区别、类模板中的成员函数创建时机、类模板对象做函数参数、类模板与继承、类模板成员函数类外实现、类模板分文件编写、类模板与友元)

    C++引用详情(引用的基本语法,注意事项,做函数的参数以及引用的本质,常量引用) 函数高级C++(函数的默认参数,函数的占位参数,函数重载的基本语法以及注意事项) C++类和对象-封装(属性和行为作为 ...

  4. 模板 (函数模板语法 ,类模板与函数模板的区别,:函数模板案例,普通函数与函数模板的区别,普通函数与函数模板调用规则,模板的局限性,类模板分文件编写.cpp,Person.hpp,类模板与友元)

    **01:函数模板语法: #include<iostream> using namespace std;//交换两个整型函数 void swapInt(int &a ,int &a ...

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

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

  6. C++_函数的定义_函数调用_值传递_函数常见的样式_函数声明(重要)_函数分文件编写---C++语言工作笔记022

    然后再去看函数,只看重点部分,笔者有一定的java经验,.net经验,所以文档中太多简单的部分,就不细说了. 结构跟java差不多一样的. 可以看到格式跟java是一样的

  7. matlab 不同函数间传递结构体数据_matlab 结构体struct函数使用方法

    1.struct函数直接定义 查阅文档是这样的:struct(field1,value1,field2,value2,.....) 上面这个格式很重要记住 field1和field2称为这个结构体的字 ...

  8. C++函数分文件编写

    1.创建.h的头文件 2.创建.cpp的源文件 3.在头文件中写函数的声明 4.在源文件中写函数的定义

  9. Java方法01 方法(函数)定义、调用、值传递、重载、命令行传递参数

    Java 方法的定义.调用.值传递.重载.命令行传递参数 1. 什么是方法? 2. 方法的定义和调用 3. 值传递和引用传递 4. 方法的重载 5. 命令行传递参数 6. 可变参数(输入参数的数量不确 ...

最新文章

  1. 使用 SqlHelperParameterCache 类管理参数
  2. TCP/IP 协议栈4层结构及3次握手4次挥手
  3. JVM监控工具有哪些
  4. wxWidgets:创建自定义小部件
  5. oracle11g 数据库导出报“ EXP-00003: 未找到段 (0,0) 的存储定义”错误的解决方案
  6. freecodecamp_为什么您一定要参与freeCodeCamp的一个研究小组
  7. 【转载 | 笔记】IIS无法删除应该程序池 因为它包含X个应用程序
  8. MongoDB Element Query Operators(元素判断操作符)
  9. python学习视频-2018年最新Python学习路线图(内含大纲+视频+工具)
  10. React-Native调用系统分享组件Share组件的使用
  11. 选择startup公司的一点经验
  12. 天地图 政府内网 代理
  13. 全球通胀对IT领域的影响
  14. 魔百盒cm311-1a yst 青龙
  15. Mac快速创建文件、文件夹
  16. 【计算机图形学】零 · 计算机图形系统概述
  17. iPhone X 响应式网页设计
  18. 趣味题系列:帽子戏法;警察抓逃犯问题 ;史密斯夫妇握手问题
  19. 4X 策略游戏的制胜之道
  20. 跪求一个木马生成器要零点的 谢谢!~

热门文章

  1. 使用Pycharm创建一个Django项目
  2. 基于CSS3飘带状3D菜单 菜单带小图标
  3. [LeetCode 题解]: Binary Tree Preorder Traversal
  4. 【转】TCP的SEQ和ACK的生成
  5. D2前端技术论坛之网页无障碍学习笔记
  6. 搜星流程(1)-[Qualcomm][BSP-GPS]
  7. [BZOJ 4819] [SDOI 2017] 新生舞会
  8. Nginx 日志文件切割
  9. Linux从零到高手的进阶心得
  10. 面向对象是软件开发范式的根本性颠覆: 主体建模, 非目标导向, 松耦合, 非逻辑分解, 软件进化...