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

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

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

函数

要说各种编程里面最基本的概念,我觉得是函数(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. numpy初始化

    一般的初始化就是用zeros这种去初始化,但你想测试一些函数的时候,如果是全0其实不好测试 可以先用python本身初始化一个list,然后转换成numpy的array a = [1.1,1.5,1. ...

  2. 查找系统中jdk的位置

    查找系统中jdk的位置: [root@localhost native]# find /|grep jni_md.h /var/lib/docker/overlay2/ec7a5439382a8a6d ...

  3. 在Eclipse中执行、配置Hadoop

    版权全部: zhe-jiang.he@hp.com  严禁转载! 1.安装插件 准备程序: eclipse-3.3.2(这个版本号的插件仅仅能用这个版本号的eclipse) hadoop-0.20.2 ...

  4. java Activiti6 工作流引擎 websocket 即时聊天 SSM源码 支持手机即时通讯聊天

    即时通讯:支持好友,群组,发图片.文件,消息声音提醒,离线消息,保留聊天记录 (即时聊天功能支持手机端,详情下面有截图) 工作流模块---------------------------------- ...

  5. docker 导出导入

    容器导出 docker export -o myname.tar 容器id 容器导人 docker import myname.tar httpd:v1

  6. Java中的集合框架-Map

    前两篇<Java中的集合框架-Commection(一)>和<Java中的集合框架-Commection(二)>把集合框架中的Collection开发常用知识点作了一下记录,从 ...

  7. 【原创】如何使用Jmockit进行单元测试

    如何使用jmockit进行单元测试 1. Jmockit简介 JMockit 是用以帮助开发人员编写测试程序的一组工具和API,它完全基于 Java 5 SE 的 java.lang.instrume ...

  8. 修改Mac系统host文件

    第一步.在终端里面输入 sudo -i 获取临时获取管理员权限,会提示你输入密码,就是启动的密码. 第二步.输入 vi /etc/hosts  前面的vi是编辑器,当然也可以换用其他的,例如上面的na ...

  9. 浅谈OSI七层网络模型和TCP/IP四层模型

    OSI七层网络模型 OSI(Open System Interconnection)开放系统互连参考模型是国际标准化组织(ISO)制定的一个用于计算机或通信系统间互联的标准体系. OSI七层模型 功能 ...

  10. WebGl 旋转(矩阵变换)

    代码1: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF- ...