函数章节
时间:2019-09-16
本文章向大家介绍函数章节,主要包括函数章节使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
函数章节
函数的作用
函数编写好后,可以被重复使用,使用时之关心函数的功能和使用方法不必关心函数的功能的具体实现。这样有利于代码的重用可以提高开发效率、增强程序的可靠性,也便于分工合作和修改维护。
***
函数重载
作业链接
***
函数的值传递
当发生函数调用时仅仅只将实参(实际参数)的值传递给函数的形参(函数的形式参数)在函数内计算,当退出函数时实参的值并不会发生改变。
例如:
#include<iostream>
using namespace std;
swap(int a,int b)
{
int t=a;
a=b;
b=t;
cout<<"a="<<a<<' '<<"b="<<b<<endl;
}
int main()
{
int x,y;
cout<<"请输入x,y" <<endl;
cin>>x>>y;
swap(x,y);
cout<<"x="<<x<<' '<<"y="<<y<<endl;
return 0;
}
这样就能看出在函数内的形式参数a,b值发生了改变,而对于实际参数x,y的值并未发生改变,这就是函数的值传递。
***
函数的地址传递
函数的地址传递就是利用&(取地址符)将实参的地址传递给函数,地址中存放着数据,可以通过修改实参地址中的数据达到修改实参值的目的。
例如:
#include<iostream>
using namespace std;
swap(int &a,int &b)
{
int t=a;
a=b;
b=t;
cout<<"a="<<a<<' '<<"b="<<b<<endl;
}
int main()
{
int x,y;
cout<<"请输入x,y" <<endl;
cin>>x>>y;
swap(x,y);
cout<<"x="<<x<<' '<<"y="<<y<<endl;
return 0;
}
这样就实现了函数的地址传递,从代码运行结果可以看出实参的值已经被修改了。
递归函数
递归函数就可以直接或间接的调用自身的函数。其实很多需要重复相同算法的计算就可以用递归也可以用循环。例如计算n!,n!=n*[(n-1)!];这时就会有重复的步骤计算(n-1)!。
代码如下:
#include<iostream>
using namespace std;
int fac(int n)
{
if(n==1)
{
return 1;
}
else
{
return n*fac(n-1);
}
}
int main()
{
int n;
cout<<"输入要计算的阶乘"<<endl;
cin>>n;
cout<<n<<"!结果是"<<fac(n)<<endl;
return 0;
}
就像这样一个函数调用自身,这就是递归函数,它可以简化很多复杂的循环计算代码。
原文地址:https://www.cnblogs.com/wxllovezn/p/11526793.html
- centos6下ActiveMQ+Zookeeper消息中间件集群部署记录
- 发布一个轻量级的滑块控件
- as3:sprite作为容器使用时,最好不要指定width,height
- openssl版本升级操作记录
- 清除浮动(clearfix hack)
- Linux下环境变量配置方法梳理(.bash_profile和.bashrc的区别)
- 小程序火爆的因素
- Log4Net使用心得
- nginx通过https方式反向代理多实例tomcat
- Linux系统下yum镜像源环境部署记录
- 特斯拉vs凯迪拉克vs奔驰:三大汽车自动驾驶系统比拼
- Centos下添加静态路由(临时和永久有效)的操作记录
- python如何保证输入键入数字
- 微信小程序自定义数据分析试水
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- K8S 生态周报| Helm v2 进入维护期倒计时
- Halcon实例转OpenCV:计算回形针方向
- OpenCV检测轮廓极点(Python C++)
- 「Python 正则」使用专题总结
- 如何真正理解好一个「设计模式」?
- 10 行实现最短路算法
- 深度学习Pytorch检测实战 - Notes - 第6章 单阶经典检测器:YOLO
- 从图片裁剪来聊聊前端二进制
- 【投稿】刀哥:Rust学习笔记 2
- 【每周一库】- JWT的Rust实现
- 【Rust日报】2020-08-15 Rust Nightly 标准库文档已涵盖了每个关键字
- 【Rust日报】2020-08-16 Cranelift现在可以编译rustc,比LLVM的编译速度快7倍!
- 【Rust日报】2020-08-17 浏览器之外的 WebAssembly
- 前沿技术探讨:Rust语言真的安全吗?
- Java、Go和Rust间的比较