此贴并非教学,主要是自学笔记,所述内容只是些许个人学习心得的记录和备查积累,难以保证观点正确,也不一定能坚持完成。

如不幸到访,可能耽误您的时间,也难及时回复,贴主先此致歉。如偶有所得,相逢有缘,幸甚关照。

学习的内容资料,多数来自菜鸟教程等网上公开的资料,特此向原作者致谢。

函数

要说各种编程里面最基本的概念,我觉得是函数(function)。

区别:编程中的“函数”、数学中的“函数”、英文function、中文含义-——功能

“函数”和“功能”的英文(function)相同,实际上个人感觉编程中的“函数”意思与“功能”更接近,不知道哪位前辈翻译成“函数”了,可能觉得“功能”太直白了吧。

但是可能有人觉得叫函数不太贴切,于是又给函数起个外号叫“方法(method)”,这其实让我们更不知所云。

但是和数学中的“函数”虽有区别,却也有些相似处。

数学中的函数是一种用公式表达的变量,跟随自变量变化。

程序中的函数是一组可以执行特定功能的子程序,它可以传入参数,通过我们设计的程序流程(类似于数学公式),计算出结果。

这样来说结果好象是参数的数学函数。

它是分步运算的一小步,许多这样的子程序计算出多步结果,最终整合成我们计算的目标。

同时我们要给它起好名字,可以方便地重复调用,下次找它时叫名字就可以帮我们干同样的事了。

好了,少说闲话,我们要正式开始学习了:

C++ 中的函数定义的一般形式如下:

return_type function_name( parameter list )
{
body of the function
}
这个需要我来翻译一下:
返回_类型 函数_名称( 参数列表)
{函数体}
返回_类型。。。在这里是说先要声明这个函数的计算结果是什么类型的数据,是整数啊、小数啊,还是字符啊。
C语言这类比较高级些的编程语言比较变态的一点就是:要先声明类型。
参数列表。。。叫参数却不是数,是一种变量;在这里要写的是一些名字,是你给要输入的参数起的名字。
参数在这里正式的名称叫形式参数,简称形参,它随函数在内存中产生,并随着函数执行完成销毁;
参数也可以没有名字,但如果你想定义一个无名参数,一定要写上它的类别,例如

int max(int, int);
参数可以有很多,用逗号","隔开(注意使用英文逗号,用中文逗号要出错哦),用圆括号括起来,也可以没有参数,用空的一对圆括号表示。
函数体。。。是顺序执行的一些语句,实现你在这个函数中想执行的功能。用大括号开始,用大括号结束。
下面举个栗子。。。这么轻的东西还要举吗?。。。你还不明白,要举的:

实例

以下是 max() 函数的源代码。

该函数有两个参数 num1 和 num2,会返回这两个数中较大的那个数:

// 函数返回两个数中较大的那个数
int max(int num1, int num2)
{
// 局部变量声明
  int result;
  if (num1 > num2)
  result = num1;
  else result = num2;
  return result;
}
我再来解释一下:
//双分数线表示后面是注释,与"/"单分数线相区别
整数 max(整数 num1, 整数 num2)
//max是函数名称,它的结果将是一个整数,它有两个参数:num1和num2,这两个都是整数
{

整数 result; //这里声明了一个局部变量result,又出现了“变量”,这次是局部变量,是指只参与函数内部计算的变量。

if (num1 > num2)

result = num1;

//如果num1 > num2,result 就等于 num1

else result = num2;

//其它情况 result 等于 num2,就是说num1小于等于num2的情况。

return result;

//返回 result的值,这也是这个函数的结果,可以供给其它函数使用。

}

这个函数输入两个整数,求出其中更大的那个值。

C++自学第一课:函数的更多相关文章

  1. MVC自学第一课

    了解传统的ASP.NET WebForm ASP.NET 在02年问世,给Web开发领域带来了巨大转变.下图描述了当时微软的技术堆栈. ASP.NET WebForm 技术堆栈 (注:此图的含义为,W ...

  2. 微信小程序自学第一课:工程目录结构与.json文件配置

    注册成为开发者 地址: https://mp.weixin.qq.com/cgi-bin/wx 开发者工具下载地址 https://mp.weixin.qq.com/debug/wxadoc/dev/ ...

  3. HTML5 —— 自学第一课

    1.心得 首先遇见问题要寻根源,而不是将问题抛出:其次要经常查看参考文档.参考示例:学会百度. 2.技能需求 HTML5.XHTML.CSS3.JavaScript.jQuery(jQuery-UI/ ...

  4. Laravel自学第一课:laravel下载与安装

    本地安装laravel,php环境要配置好,推荐xmapp一键搭建. 1.程序包直接从官方下载,官方开源地址:https://github.com/laravel/laravel(当然也可从此网站:h ...

  5. C++自学教程第一课——你好世界,我是柠檬鲸。

    C++系列教程现在在自己学校的一个博客平台发布,几个朋友一起搭建的 [C++基础教程系列](https://blog.ytmaxoj.org/cpp_basic_liuary-0/) 下面是原来的正文 ...

  6. 【C语言探索之旅】 开宗明义及第一课:什么是编程?

    内容简介 1.课程大纲 2.第一部分第一课:什么是编程? 3.第一部分第二课预告:工欲善其事,必先利其器 ​ 课程大纲 不知道为什么,一直对C语言有一种很深厚的“情怀”(类似老罗对锤子手机的那种),说 ...

  7. swift 第一课 基础知识-1

    1. 基本的打印: print("这是学习 swift 的第一课") var varA = print("a 的值是 \(varA)") //注:字符串打印参数 ...

  8. vue.js学习(第一课)

    学习资料 来自台湾小凡! vue.js是javascript的一个库,只专注于UI层面,核心价值永远是 API的简洁. 第一课: 不支持IE8. 1.声明式渲染: el元素的简称 element : ...

  9. 【第一课】神奇的Context

    初学Android的困惑 初学Android跳转页面的时候,往往教程里是这么写的: Intent intent = new Intent(); //MyActivity就是当前的Activity,It ...

随机推荐

  1. [转载] MySQL 注入攻击与防御

    MySQL 注入攻击与防御 2017-04-21 16:19:3454921次阅读0     作者:rootclay 预估稿费:500RMB 投稿方式:发送邮件至linwei#360.cn,或登陆网页 ...

  2. Hadoop 解除 NameNode is in safe mode

    运行Hadoop程序时,有时候会报以下错误: org.apache.hadoop.dfs.SafeModeException: Cannot delete /user/hadoop/input. Na ...

  3. 监听器中spring注入相关的问题

    问题描述: 需求是要求在项目启动自动触发一个service中的线程的操作,使用监听器来实现,但是自定义监听器中spring注解service失败,通过WebApplicationContextUtil ...

  4. ASP.Net GridView 基础 绑定字段

    通过以前的学习,我们实现了效果如下: 现在我想修改显示/隐藏部分列,有两种做法: 一.在配置数据源的时候不是有查询哪些字段的吗,去除不需要的字段,重新绑定. 二.就是直接编辑列 下面是分析每种字段类型 ...

  5. POJ 3080 Blue Jeans 找最长公共子串(暴力模拟+KMP匹配)

    Blue Jeans Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 20966   Accepted: 9279 Descr ...

  6. 使用XWAF框架(5)——XML解析器:CXDP

    XWAF推出了自己的组合式XML文档解析器,英文名叫:“CXDP”,是“Combined XML Document Parser”的缩写.核心代码属XWAF原创,注释.日志和帮助文档采用全中文描述,特 ...

  7. [iOS]UIFont的lineHeight与pointSize

    写这篇文章的初衷是由于我有一次想获取一个font的字体大小时使用了UIFont的lineHeight属性,结果是比字体的大小要大了一部分,然后经过查阅各种资料,发现了原因. 首先我们来看一看UIFon ...

  8. 正方形(类型:枚举、一级、C++)

    题目描述 有一个正方形,四个角的坐标分别是(1,-1),(1,1),(-1,-1),(-1,1).写一个程序,判断一个给定的点(x,y)是否在这个正方形内(包括正方形边界),如果在正方形内输出“Yes ...

  9. Ubuntu18.04安装mysql及相关配置

    step 1: sudo apt-get update step 2: sudo apt-get install mysql-server step3: 查看mysql服务端是否开启 systemct ...

  10. 关于json时间数据格式转换与修改

    使用easyui获取JSON时间数据时间数据时,通常是一长串的数字而不是我们想要的类似2018-11-01的普通时间格式. 此时我们就需要使用到关于JSON时间的格式化,而将时间转化成我们想要的格式. ...