swap函数_[C++基础入门] 6、函数
点击上方 蓝字 关注我呀!
[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、 无参无返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个步骤
创建后缀名为.h的头文件
创建后缀名为.cpp的源文件
在头文件中写函数的声明
在源文件中写函数的定义
示例:
//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、函数相关推荐
- Python oct 函数 - Python零基础入门教程
目录 一.Python oct 函数简介 二.Python oct 函数使用 1.Python chr 函数将 ascll 码转为字符 2.Python ord 函数将字符转为 ascll 码 三.猜 ...
- 数据结构和算法_零基础入门01
数据结构和算法_零基础入门01 一.数据结构是什么? 逻辑结构.物理结构 二.算法 算法的五个基本特征 算法设计的要求 b站学习小甲鱼的数据结构与算法,自留笔记. 程序设计=数据结构+算法 一.数据结 ...
- Python help 函数 - Python零基础入门教程
目录 一.Python help 函数简介 二.Python help 函数使用 1.查看内置函数的帮助信息 2.查看数据类型的帮助信息 三.猜你喜欢 基础 Python 学习路线推荐 : Pytho ...
- Python next 函数 - Python零基础入门教程
目录 一.Python next 函数简介 二.Python next 函数使用 三.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 ...
- Python min 函数 - Python零基础入门教程
目录 一.Python min 函数简介 二.Python min 函数使用 三.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一. ...
- Python reload 函数 - Python零基础入门教程
目录 一.Python reload 函数简介 二.Python reload 函数使用 三.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Python 基 ...
- Python max 函数 - Python零基础入门教程
目录 一.Python max 函数简介 二.Python max 函数使用 三.猜你喜欢 基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一. ...
- Python globals 函数 - Python零基础入门教程
目录 一.Python globals 函数语法 二.Python globals 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Pytho ...
- Python locals 函数 - Python零基础入门教程
目录 一.locals 函数语法 二.locals 函数使用 三.猜你喜欢 零基础 Python 学习路线推荐 : Python 学习目录 >> Python 基础入门 一.locals ...
最新文章
- Java 第四周总结
- Docker容器基本使用
- 中国铁路官宣:高铁Wi-Fi将融合5G技术
- android 开机打开串口失败,请大神帮我看看这是怎么回事,一用就说串口打开失败,再电脑上试...
- centos7 python3 爬虫登陆邮箱_使用爬虫爬取超星学习通的作业时间并且通过邮件提醒!...
- Windows平台安装flutter之初体验(安装教程)
- 【Verilog基础】Verilog语法之标量(Scalar)与向量(Vector)
- 华为VRRP-基于交换机的VRRP配置
- eth入门之web2 与 web3 的对比
- vue动态切换背景图片background
- linux or msys2设置网络代理
- ctab提取dna流程图_CTAB法提取植物DNA原理以及步骤
- H5canvas(保存图片,globalCompositeOperation)
- 微信H5移动端真机调试--vConsole
- Android集成微信支付之-天坑
- 【电路】自用人体感应灯(HC-SR501人体感应模块)
- 德语语法笔记——冠词的用法
- 【PPP概念股龙头】PPP再迎风口 相关概念股表现格外抢眼(2)
- 基于Javaweb的小项目(类似于qqzone)1——设计数据库
- 微博评论数据爬取以及分析
热门文章
- java调用指定浏览器打开指定网址
- electron 打开调试_构建基于 iOS 模拟器的前端调试方案
- 什么是python装饰器_深入理解 Python 装饰器
- mybatis中转义 大于,小于,大于等于,小于等于
- SpringBoot注解@Value取值取不到问题
- MYSQL5.7离线安装报libnuma.so.1()(64bit) is needed by mysql-community-server-5.7.29-1.el7.x86_64
- mysql8开启远程访问
- image.merge图像有什么变化_经常用到压缩软件的你,知道什么是无损压缩和有损压缩吗?...
- 一次mongoengine查询速度慢的优化
- Hbuilder连接安卓模拟器,调试app