system函数_自学C++基础教程【函数】

de719495d575f3e0d3187c7560d91588.png

函数的概念

一个函数由:函数的返回值类型、函数名、参数表、函数体 这4个部分组成。

3927a275044b912cac9c98c0d4ad5ee2.png
int  Add(  int   _a , int   _b  ) 
{return _a + _b;
}

该函数 Add 完成对两个整型数据的求和功能。

函数的调用方式: 函数名(参数表);

在代码区键入如下代码,观察程序运行结果

#include<iostream>using namespace std;int  Add(  int   _a , int   _b  ){return _a + _b;}void  main()
{int iResult = Add(3, 5);	  // 该行既为函数的调用cout<<iResult<<endl;system(“pause”);}

函数的定义,声明、实现

函数的定义:该函数出现的时候就具有返回值、函数名、参数表、函数体

在代码区键入如下代码,观察运行结果:

#include <iostream>using namespace std;void GetSum(  int _a , int _b )
{cout<<"两数之和为:"<<_a+_b<<endl;}void main()
{GetSum(3,5);system("pause");}

e6fb3c038cb7e0f863e332ad7bb5e279.png

如果代码变为如下样子,是否有问题?

#include <iostream>using namespace std;void GetSum(int, int);void main()
{GetSum(3,5);system("pause");}void GetSum(  int _a , int _b )
{cout<<"两数之和为:"<<_a+_b<<endl;}

aa278dbd532431bc4ebbd9c890ef403e.png

如果代码变为如下样子,是否有问题?

#include <iostream>
using namespace std;void main()
{void GetSum(  int _a , int _b ){cout<<"两数之和为:"<<_a+_b<<endl;}GetSum(3,5);system("pause");}

bf855c4b834b1ce6f6b973ce68579184.png

函数的声明:该函数出现的时候只具有返回值、函数名、参数表,但是缺少函数体,而以分号作为结尾

函数的实现:在声明过一个函数之后,我们为其添加函数体的过程

在代码区键入如下代码,观察运行结果

#include <iostream>
using namespace std;void GetSum(  int, int);     // 声明一个函数void main()
{GetSum(3,5);	     //调用一个已经声明过的函数system("pause");}

61d9cd58f27b8009de4d3bb2f6843ab4.png

代码修改如下,观察运行结果

#include <iostream>
using namespace std;void GetSum(  int  , int  );     // 函数的声明,在声明一个函数的时候我们可以不给出函数的形参名void main()
{GetSum(3,5);	     //调用一个已经声明过的函数system("pause");}void GetSum(  int _a , int _b )     //函数的实现
{cout<<"两数之和为:"<<_a+_b<<endl;}

24e8991b8ba9d2949b9749b347a4291c.png

通过以上讲解可以看出:

  1. 一个函数既可以定义,也可以先声明,后实现
  2. 两种形式的函数在调用上无区别
  3. 函数的定义往往出现在程序结构相对简单的代码中
  4. 函数的声明、实现经常出现在代码需要拆分为 .h 与 .cpp两个文件中的情况(例如我们后面将要讲解的类,类的函数的声明出现在它的.h文件中,而该函数的实现往往出现在.cpp文件中)

一个函数:由函数返回值、函数名、参数表、函数体这四个部分组成

  1. 函数返回值:可以是任何基本数据类型。
  2. 函数名是由用户定义的标识符,需遵循C++标识符命名规则。
  3. 函数的参数表,由()中间的参数组成。参数是用于向函数传递数据的变量。
  4. 函数体为当前函数所能完成功能的复合语句。

注意:main函数是一个特殊的函数,它是C++的入口函数。


函数返回值可以是任何基本数据类型。

在代码区键入以下代码,编译并运行后查看结果

#include <iostream>
using namespace std;int   getSum(int _a , int _b)
{return _a+_b;}void main(){int iResult = getSum(3,5);cout<<"3+5 = "<<iResult<<endl;system("pause");
}

a31a9fe3613c02b7b56a563c305721b1.png

函数的返回值

将代码改写为如下,编译并运行后查看结果

#include <iostream>using namespace std;int   getSum(int _a , int _b)
{return _a+_b;}void main(){// int iResult = getSum(3,5);cout<<"3+5 = "<<getSum(3,5)<<endl;system("pause");}

25c4b4631e6a155941fccf3d1590e836.png

在函数的返回值类型不是“void”的情况下,函数体内部必须至少存在一个“return”语句,用于返回必要的数据。

#include <iostream>
using namespace std;bool playerIsDead(int   _hp)
{if( _hp > 0 )return false;return true;
}
void main(){int iHP = 0;cout<<"请输入玩家HP:"<<endl;cin>>iHP;if( playerIsDead(iHP) )cout<<"玩家死亡"<<endl;elsecout<<"玩家存活"<<endl;system("pause");
}

6c43438b1ed1f0a96601d8e2717eda50.png

52f52a859e572463781336f375bd0868.png

注意:在函数内部需要分支返回的情况下,必须确保所有分支路径都具有返回值。否则程序将会提示警告:“不是所有路径都有返回值”

如果一个函数不需要返回任何数据,使用void作为函数的返回值

如果一个函数的返回值为void时,return语句可以省略。

在代码区键入以下代码,编译运行查看结果

#include <iostream>
using namespace std;void printArray( int _iArray[] , int _length ){for(int i = 0 ; i < _length ; ++i)cout<<_iArray[i]<<endl;
}
void main(){int iArray[10] = {1,2,3,4,5,6,7,8,9,10};printArray(iArray,10);system("pause");}

a238f64fd9305408a4784995700877e4.png

函数名

函数名的命名要遵循C++标识符的命名规则。

可以采取驼峰式命名规则:

如:

GetSum

PlayerIsDead

首个单词首字母小写,其他单词首字母大写


函数的参数表

函数的参数表由() 中间添加向该函数传递的参数组成。

参数是用于向函数传递数据的变量。

函数参数的()中可以没有任何参数,但是()不能省略

#include <iostream>
using namespace std;void main()
{cout<<"parameter"<<endl;system("pause");
}

694a4e5714213ca578fe84eb08d8543b.png

函数的参数分为两种:形式参数(形参)、实际参数(实参)

形参出现在函数声明或定义中,在整个函数体内都可以使用,离开该函数则不能使用。

实参出现在调用语句中,进入被调函数后,实参不能使用。

在代码区键入如下代码,编译并运行查看结果:

#include <iostream>
using namespace std;int getMax( int _a , int _b )		 {return _a > _b ? _a: _b;
}void main()
{int iValue1 = 10 , iValue2 = 5;cout<<"较大的为:"<<getMax(iValue1,iValue2)<<endl;system("pause");}

68159fe12f9255db1c2ac0a680ff0e5f.png

函数的形参和实参具有以下特点:

  1. 形参变量只有在被调用时才分配内存单元,在调用结束时释放所分配的内存单元。
  2. 实参可以是常量、变量、表达式等。
  3. 实参和形参的数量和顺序应严格一致。

函数的缺省参数(默认参数、可选参数):

在函数的参数表中被赋以初始值的参数

函数可以在参数表中设置一个或多个参数的缺省值。

void Test( int  _a ,  int  _b = 4);

Test(); //正确

Test(10); //正确

Test(100,200); //正确

Test( , 200); //错误

函数调用时,实参表和形参表中的参数是按位置对应的。

缺省参数只能从后向前替代缺少的实参值。


如果我们将没有赋初始值的参数称之为:必选参数,那么当我们在定义一个函数的时候:

该函数的参数中必须同时既有必选参数,又有可选参数,它的定义形式一定为:

返回值 函数名(必选参数1,.,.,必选参数n,可选参数1,.,.,可选参数n)

void Test( ); //正确

void Test( int _a ); //正确

void Test( int _a , int _b = 0 ); //正确

void Test( int _a = 0 , int _b = 0 ); //正确

void Test( int _a = 0 , int _b ); //错误


函数体

函数体为当前函数所能完成功能的复合语句。

例如:该函数返回两个参数中较大的一个

int  getMax( int _a , int _b )	{if(_a > _b)return _a;elsereturn _b;}

今天主要讲解了函数的基本概念、函数的声明、实现、定义,函数的基本组成部分等函数相关的基本概念。

这些基本概念是我进行后续学习的基础。

学习资料领取:

https://pan.baidu.com/s/1VX_zb_eqWH_coos1ZB9QQw

提取码:w8st

学习从来都不是一个人的事,如果你感觉小编的这篇文章对你有帮助的话,可以关注小编首页和小编来一起学习C/C++语言,小编会持续更新后续的内容哦!!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/537449.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

宁波政务云资源的介绍与申请

介绍 如图所示&#xff1a; 宁波政务云分公共服务区与资源共享区。 公共服务区 公共服务区&#xff0c;一般部署允许互联网访问的系统&#xff0c;数据不敏感&#xff0c;不重要的&#xff0c;可对外开发的系统。 该区允许互联网访问&#xff0c;不允许访问资源共享区&…

python帮助文档在哪_python文档在哪里

对于Python中一些不清楚的模块&#xff0c;可以通过文档学习如何使用&#xff0c;但是python文档在哪里呢&#xff1f;这个问题我们可以使用Python命令进行查看。方法一 在python命令行输入以下内容help(time) # 很详细的模块文档 help(time.localtime()) # 很详细的函数文档 h…

政务云公共服务区与资源共享区数据交换的方式

上文《宁波政务云资源的介绍与申请》介绍过&#xff0c;公共服务区与资源共享区是不能互访的&#xff0c;只能是资源共享区单向访问公共服务区。 我有一项目&#xff0c;要能互联网访问&#xff0c;又要访问“宁波大数据共享平台”的接口&#xff0c;“宁波大数据共享平台”在…

Java程序员的IntelliJ IDEA使用教程

前言 博主是Java程序员&#xff0c;以前一直都用myeclipse来开发的&#xff0c;说实话感觉myeclipse毫无美感可言&#xff0c;后来经过同事介绍&#xff0c;认识了IDEA&#xff0c;一眼就相中了IDEA黑色的主题风格&#xff0c;自此就抛弃了旧爱myeclipse。当时还不懂IDEA功能上…

python中random函数用法_random函数的用法

展开全部 用法&#xff1a; 1、随2113机生成&#xff08;0,1&#xff09;之间的浮点数 random.random() 2、随机生成100-200的整数5261 random.randint(100,200) 3、随机产生范围为410210间隔为2的数 random.randrange(0,11,2) 注&#xff1a;这里输出&#xff08;0,2,4,6,8,10…

2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1)

2018-2019 ACM-ICPC Pacific Northwest Regional Contest (Div. 1) 思路: A Exam 思路:水题 代码: #include<bits/stdc.h> using namespace std; int main(){int k;scanf("%d",&k);char s1[1010],s2[1010];scanf("%s%s",s1,s2);int same0;int ns…

Prince2与PMP的区别

p2有7个原则&#xff0c;7个主题&#xff0c;7个流程&#xff0c;即37二十一。 P2有26个管理产品模板。 2009版本是经典版本&#xff0c;2017版本与2009版本内容基本没变&#xff0c;梳理了目录&#xff0c;使内容更加有可读性。 P2是非常好的项目管理方法论&#xff0c;任何…

拉取远程分支_git clone切换分支步骤,代理设置,作者信息设置

1.克隆远程仓库git clone git地址2.查看所有分支git branch –a3.切换分支git checkout branchName4.查看当前所在分支git branch5.拉取代码git pull6.提交代码git add file/folder git commit -m comment git push可能遇到的问题&#xff1a;A.error: fatal: unable to acce…

[学习笔记]半平面交

一个直线把平面分成两部分&#xff0c;就是两个半平面 处理这两个平面的交的信息&#xff0c;就是半平面交 推荐&#xff1a; 计算几何之半平面交算法模板及应用 bzoj 2618 半平面交模板学习笔记 【总结】半平面交 可以用于求任意多边形交&#xff0c;任意多边形内核。 &#x…

Project计算项目进度

1.设立根节点 2.资源列表 3.资源成本 4.基准 在任务分配状况 视图里&#xff0c;添加“基线工时”“实际工时”“BCWS(计划&#xff09;”“ACWP(实际&#xff09;”“BCWP&#xff08;挣值&#xff09;”&#xff0c;“SV(>0 提前&#xff0c;<0 延后&#xff09;”、…

jquery动态绑定事件的方法_Jquery绑定事件及动画效果

绑定事件bind(type, data, fuc)one(type, data, fuc) //只执行一次常见事件类型名称含义blur失去焦点focus获得焦点load加载resize重置大小scroll滚动unload卸载click点击dblclick双击mousedown鼠标按下mouseup鼠标弹起mousemove鼠标移动mouseover鼠标悬停mouseout鼠标移走mous…

实验 5 编写、调试具有多个段的

实验任务 &#xff08;1&#xff09; &#xff08;2&#xff09; &#xff08;3&#xff09; &#xff08;4&#xff09; 若将最后一条指令”end start“改为”end“&#xff0c;&#xff08;3&#xff09;中的程序仍然可以正常执行。 原因&#xff1a;如果不指明程序的入口&am…

hbuilderx的快捷键整理pdf_mac键盘快捷键详解,苹果电脑键盘快捷键图文教程

作为 Apple 最成熟的系统之一&#xff0c;macOS 已经成为许多人每天都在接触的生产力工具。为了帮助大家更好地了解 macOS 的生态魅力&#xff0c;我们整理了这份融合了文字图片和动图的mac键盘快捷键详解&#xff0c;希望能够帮助你掌握更多系统使用技巧。文章所有操作都基于 …

word插入图片显示不全

word插入图片&#xff0c;显示不全&#xff0c;只有部分。 调整步骤 图片尾部 光标定位到图片的尾部 单倍行距 右键&#xff0c;选择“段落”&#xff0c;行间距选择“单倍行距” 图片就完成显示了

理解 JavaScript 作用域

上一篇文章中分析了 JS 中的数据类型和变量。这一篇文章将分析作用域&#xff0c;以及回答上一篇文章中变量提升的原因。 什么是作用域 作用域是一套规则&#xff0c;保存着变量&#xff0c;等待被引擎所查找。 var a 1; console.log(a); // > 1 console.log(b); // >…

Axure原型设计导出到PDF文件

Axure 没有直接导出PDF文件的功能&#xff0c;可以通过Axure 的打印功能&#xff0c;选择PDF打印机&#xff0c;以间接的方式将原型设计导出到pdf文件里。 操作步骤 以Axure9为例 打印 Axure9---文件---打印 不要母版 预览 预览下效果&#xff0c;看下是否有不必要的内容 …

python pca降维_机器学习的降维打击

文章发布于公号【数智物语】 (ID&#xff1a;decision_engine)&#xff0c;关注公号不错过每一篇干货。来源 | SAMshare(id:SAMshare)作者 | samshare"本次主要讲解的内容就是特征降维&#xff0c;主要涉及PCA以及一些常见分析方法。"01Index一&#xff0c;PCA降维算…

参加技术培训前的辅导,选得对,学得好

最近几年&#xff0c;每年都会有人问我培训班的事情&#xff0c;我也有培训班经历&#xff0c;在软件行业工作了十多年&#xff0c;每次解答培训班的咨询我都很认真&#xff0c;也很高兴能帮到他人。 决定通过专栏的形式解答培训班常见问题&#xff0c;我把专栏取名“技术培训…

进入IT行业,要不要参加培训班?

IT行业介绍 考虑培训班无非是要入行,那IT行业好不好?IT行业当然好,看看培训班的数量就知道了。现在房产行业好赚钱,每个小区门口好几家中介门店,相同品牌的可能不止1家。不用去看网上的软文,也不用去问百度,看市场的反应,这是真实的反馈。培训班越来越多,课程越来越多…

Kubernetes在上汽集团云平台及AI方面的应用

2019独角兽企业重金招聘Python工程师标准>>> 帆一尚行成立于2015年&#xff0c;是上汽集团的全资子公司&#xff0c;建设有上海、南京、郑州&#xff08;在建&#xff09;三个数据中心&#xff0c;拥有超过4000台物理服务器&#xff0c;10PB的数据存储&#xff0c;总…