《零基础看得懂的C++入门教程 》——(6)自己动手写个函数

一、学习目标

  1. 了解C语言的自定义函数的使用方法
  2. 了解C语言自定义函数的传参
  3. 了解C语言自定义函数的返回值

目录

预备第一篇,使用软件介绍在这一篇,C++与C使用的软件是一样的,查看这篇即可:《软件介绍》
想了解编译原理和学习方法点这篇,学习方法和一些原理C++与C都是相同的《脱离学习误区》

《零基础看得懂的C++入门教程 》——(1)第一个C++程序就让你知其所以然
《零基础看得懂的C++入门教程 》——(2)什么是数据类型、变量?一看便会
《零基础看得懂的C++入门教程 》——(3)表达式花样挺多鸭
《零基础看得懂的C++入门教程 》——(4)条件判断原来如此
《零基础看得懂的C++入门教程 》——(5) 容我套个娃 循环

推荐

1.《备受好评的看得懂的C语言入门教程》

欢迎大家关注公众号,公众号每满1024及1024倍数则会抽奖赠送机械键盘一份+IT书籍2份哟~
在这里插入图片描述

二、了解C语言自定义函数的使用方法

在C++中函数是可以自定义的,根据自己的需求实现不同的函数方便在之后开发中使用。

2.1 了解自定义函数的使用方法
自定义函数由几部分构成,最简单的函数有返回类型修饰符、函数名以及函数体。返回类型的修饰符为类型修饰符,如int、float、char等;返回类型修饰符一般放在函数名前,函数名的定义方式与变量名定义规范类似;自定义函数的函数体则是在一对花括号内的代码内容。

我们先看一个示例:

#include<iostream>
using namespace std;
void func(){cout<<"这里是自定义函数"<<endl;
}int main() {func(); 
}

以上代码中,自定义函数为:

void func(){cout<<"这里是自定义函数"<<endl;
}

在以上对于函数的描述中,我们得知最简单的函数构成为类型修饰符、函数名以及函数体。以上函数的类型修饰符为void,void表示当前函数没有返回值(什么是返回值接下来会说到)。函数名为func,函数名后接着一堆圆括号,圆括号后有一对花括号,花括号内则是函数体。当前函数体内的内容为输出"这里是自定义函数"这一个提示。当前函数的功能也就是显示 "这里是自定义函数"这个内容了。

在main中,调用了自定义函数func。之前我们已经知道,函数使用方式为函数名后接一堆圆括号,所以代码写为 func();,用分号结束。调用后将会执行函数中的代码将会显示 "这里是自定义函数"

运行结果如下:

细心的同学发现,其实我们的main也是一个函数,我们使用int修饰main函数,不过main是系统函数表示当前代码的入口,我们所编写的代码将会从main函数第一条语句开始运行。

2.2 了解有参函数的使用方法
有过C语言经验的同学知道,我们经常使用printf函数,该函数我们传入什么值将会在程序运行时显示什么值;所传入的值称为参数;打个比方,洗衣机的功能是洗衣服,我们会丢衣服进去,这个衣服就是参数;再或者我们做饭的时候使用电饭锅,电饭锅需要的原料是米,这个米就是参数;我们自定义的函数也可以实现这个功能。例如我想显示变量a的值,只需要修改一下上一节的代码即可实现,代码如下:

#include<iostream>
using namespace std;
void func(int a){cout<<"变量a 的值是:"<<a<<endl;
}int main() {int a=10;func(a); 
}

以上代码在func函数的圆括号中添加了int aint a表示func函数接收一个整数类型的变量a;在func函数中,使用printf函数输出了变量a的值,在函数中使用的a变量在func(int a)中表示声明,具体值需要在使用函数时传入。使用函数传参只需要函数名后接的圆括号中传入值,则表示把值赋值给func圆括号中的变量a,如func(a); 则表示把外部的a变量值赋值给func函数的a变量。

在以上函数中,func(int a)的变量a与main函数的a是有区别的;就好比你们学校校长叫做小明,你们班有个学生叫做小明,在你们班级平常称呼中,小明指的是你们班级的小明,并不是校长;函数也一样,在函数中,使用的a单单值函数内的a,func(int a)中的a,以及接下来函数内使用的a只代表当前函数。

结果如下:

当然传入的值也可以写为具体的值,代码如下:

#include<iostream>
using namespace std;
void func(int a){cout<<"传入的值是:"<<a<<endl;
}int main() {int a=10;func(99); 
}

运行结果如下:

2.2 了解有多个参函数的使用方法
以上了解了一个参数的自定义函数,接下来了解多个参数的自定义参数使用方法。查看示例:

#include<iostream>
using namespace std;
void func(int a,int b){cout<<"a+b的值是:"<<a+b<<endl;
}int main() {int a1=10,b1=11;func(a1,b1); 
}

以上代码中,func函数接收两个参数,一个是a,一个是b,两个参数之间使用逗号间隔,func自定义函数中则会输出两个数相加的结果。在main函数中,定义了两个变量一个为a1,一个为b1,使用func后传入两个变量,它们之间使用逗号间隔。

运行结果如下:

2.2 了解自定义函数返回值
我们修改上一节示例,现在需求更换为只需要得到两个值做加法运算后的值,不需要在函数中输出,只需要在外部输出结果。代码如下:

#include<iostream>
using namespace std;
int func(int a,int b){int c=a+b ;return c; 
}int main() {int a=10,b=11;int c=func(a,b); cout<<c<<endl;
}

以上代码中,void func 修改成了int func,void表示当前函数无返回值,使用int 表示当前函数将会返回一个整数值表示当前函数最终的结果。

在函数体中定义了一个整数类型变量c,并且直接赋值为a+b的结果;最后使用return关键字表示把变量c的值给返回出去。在外部需要使用一个变量接收如 int c=func(a,b); ,这时变量c就得到了func函数返回的值。在以上代码中使用cout查看c的结果。

运行结果如下:

当然也可以直接输出函数的结果值:

#include<iostream>
using namespace std;
int func(int a,int b){int c=a+b ;return c; 
}int main() {int a=10,b=11;cout<<func(a,b)<<endl;
}

想要再简便代码一点也可以这样:

#include<iostream>
using namespace std;
int func(int a,int b){return a+b; 
}int main() {int a=10,b=11;cout<<func(a,b)<<endl;
}

描述函数返回值的修饰符一定要与返回值类型一致,否则将会出现无法预料的结果或者直接报错。

以上代码我使用void修饰了一个有返回值的函数,编译器直接报错提示我的函数是有返回值的但是用了void修饰。

三、总结

通过以上描述与讲解,我们了解了以下几点内容:

  1. 了解了自定义函数的基本使用方法
  2. 了解了自定义函数类型修饰符与变量类型修饰符一致
  3. 了解了有参自定义函数的使用方法
  4. 了解了自定义函数有返回值的使用方法

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

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

相关文章

【计算机图形学】实验:C#语言采用GDI+定义笔刷并填充图形完整实验操作流程

一、实验目的: 熟练掌握在.net环境下对笔刷的定义,并可用定义好的笔刷填充多边形。 二、实验准备: 学习在.net环境下GDI+所提供的5种笔刷类型,掌握定义笔刷的方法和填充图形的函数,如FillRectange ( )、FillEllipse ( )等。 三、实验内容: 在.net环境中设计一个窗体…

管道模式 pipe

先放一个图&#xff0c;预则立嘛 PipelinePattern.rar 这里是 不完整的码转载于:https://www.cnblogs.com/ganmk--jy/p/5525897.html

《零基础看得懂的C++入门教程 》——(7)小数组玩起来

一、学习目标 了解数组的使用方法了解一维数组的使用方法了解一维数组与循环的使用方法 目录 预备第一篇&#xff0c;使用软件介绍在这一篇&#xff0c;C与C使用的软件是一样的&#xff0c;查看这篇即可&#xff1a;《软件介绍》 想了解编译原理和学习方法点这篇&#xff0c…

SSO 方案演进

1背景介绍 随着业务与技术的发展&#xff0c;现今比以往任何时候都更需要单点登录 SSO 身份验证。现在几乎每个网站都需要某种形式的身份验证才能访问其功能和内容。随着网站和服务数量的增加&#xff0c;集中登录系统已成为一种必要。在本文中&#xff0c;我们将讨论下 …

《零基础看得懂的C++入门教程 》——(8)搞定二维数组与循环嵌套

一、学习目标 了解二维数组的使用方法了解循环嵌套的使用方法 目录 预备第一篇&#xff0c;使用软件介绍在这一篇&#xff0c;C与C使用的软件是一样的&#xff0c;查看这篇即可&#xff1a;《软件介绍》 想了解编译原理和学习方法点这篇&#xff0c;学习方法和一些原理C与C都…

常见的Ubuntu命令30条(一)

Ubuntu命令是指在Ubuntu操作系统中用于执行各种任务和操作的命令行指令。这些命令可以用于管理系统、配置网络、安装软件、浏览文件等。Ubuntu命令通常在终端&#xff08;Terminal&#xff09;应用程序中输入并执行。 在Ubuntu中&#xff0c;有许多常用的命令和指令。以下是一…

【计算机图形学】实验:C#.net环境下的图形变换完整实验操作流程

一、实验目的: 熟练掌握在.net环境下对图形的变换方法。 二、实验准备: 学习图形变换的基本算法,如平移、旋转、缩放等,以及在.net环境下变换图形的基本方法。 三、实验内容: 在.net环境中利用变换图形的基本方法对图形进行变换,包括平移、旋转、缩放、对称、复合变…

《零基础看得懂的C++入门教程 》——(9)结构体原来如此

一、学习目标 了解C语言的结构体的使用方法了解C语言结构体的结构的赋值了解多种C语言结构体变量的赋值方法和取值方法 目录 预备第一篇&#xff0c;使用软件介绍在这一篇&#xff0c;C与C使用的软件是一样的&#xff0c;查看这篇即可&#xff1a;《软件介绍》 想了解编译原…

微信小程序python token验证_微信小程序python 用户认证

按流程图来先通过wx.login()获取code,再通过我们后台配置的接口获取openid和session_key// 登录wx.login({success: res > {console.log(res)// 发送 res.code 到后台换取 openId, sessionKey, unionIdwx.request({url: api.GET_OPENID, //data: {js_code: res.code},succes…

C#实用技巧之:将图标打包进DLL并读取

概述个人的项目界面有时候需要用到很多图标&#xff0c;这些图片可以建立一个文件夹单独存放&#xff0c;但有时涉及到多台设备部署的话&#xff0c;每台设备都需要随项目一起拷贝过去&#xff0c;如果忘记了界面显示就会出问题&#xff0c;有没有更好的办法解决&#xff1f;有…

【计算机图形学】实验:VB.net环境下的绘制贝赛尔(Bezier)自由曲线完整实验操作步骤

一、实验目的 熟练掌握在.net环境下绘制贝赛尔自由曲线。 二、实验准备 学习生成贝赛尔自由曲线的基本算法,以及在.net环境下绘制贝赛尔自由曲线的基本方法(DrawBezier和DrawBeziers)。 三、实验内容 在.net环境中绘制二次、三次贝赛尔曲线。 四、实验过程及步骤 (包…

《零基础看得懂的C++入门教程 》——(10)面向对象

一、学习目标 了解C类是什么了解类对象与类型修饰一样进行创建了解了类的属性如何使用了解了类方法的使用方法 目录 预备第一篇&#xff0c;使用软件介绍在这一篇&#xff0c;C与C使用的软件是一样的&#xff0c;查看这篇即可&#xff1a;《软件介绍》 想了解编译原理和学习…

浅谈JSONP

这是我在13年初写的文章&#xff0c;当时懵懵懂懂写下了自己对JSONP的理解。 文章原文 博客 欢迎订阅 提到JSONP&#xff0c;我当时在网上找了无数帖子也没有看懂它。那些文章大同小异&#xff0c;都是讲到JSONP原理以后就戛然而止&#xff0c;把我们这些初学者搞得云里雾里。所…

Asp.Net Core 7 preview 4 重磅新特性--限流

前言限流是应对流量暴增或某些用户恶意攻击等场景的重要手段之一&#xff0c;然而微软官方从未支持这一重要特性&#xff0c;AspNetCoreRateLimit这一第三方库限流库一般作为首选使用&#xff0c;然而其配置参数过于繁多&#xff0c;对使用者造成较大的学习成本。令人高兴的是&…

【计算机图形学】实验:C#.net环境下采用GDI+图形特技处理案例教程

一、实验目的 掌握在.net环境下对图形特技的处理方法。 二、实验准备 学习在.net环境下读取图像文件、改变颜色等基本知识。 三、实验内容 在.net环境中实现对图像的灰度化处理、柔化和锐化、底片滤镜、淡入淡出以及浮雕、油画和木刻等艺术效果。 四、实验过程及步骤 (…

Android中build target,minSdkVersion,targetSdkVersion,maxSdkVersion概念区分

如果开发的应用用户较多&#xff0c;那么必须保证应用在多个版本不同的设备上能够正确的运行。这就要求对各个版本比较熟悉&#xff0c;知道在什么版本中加入了什么新的功能或特性。但是Android的版本太多了&#xff0c;是个令人头疼的问题。如果想了解Android的版本差异&#…

[python opencv 计算机视觉零基础到实战] 一 opencv的helloworld

前置条件 说明&#xff1a;本系列opencv实战教程将从基础到实战&#xff0c;若只是简单学习完python也可以通过该教程完成一般的机器学习编程&#xff1b;文中将会对很多python的基础内容进行讲解&#xff0c;但由于文章定位的原因将不会赘述过多的基础内容&#xff0c;基础内…

【计算机图形学】实验:VB.net环境下的综合绘图与交互技术案例教程

一、实验目的 掌握在.net环境下的绘图软件界面设计与交互技术。 二、实验准备 学习在.net环境下的界面设计的一般原理与交互技术等基本知识。 三、实验内容 将前7个实验内容集成到一个界面下&#xff0c;如直线段、圆、矩形与曲线的绘制填充&#xff0c;以及对图像的处理&…

从头开始敲代码之《从BaseApplication/Activity开始》

转载请注明出处王亟亟的大牛之路 其安易持&#xff0c;其未兆易谋&#xff1b;其脆易泮&#xff0c;其微易散。为之于未有&#xff0c;治之于未乱。合抱之木&#xff0c;生于毫末&#xff1b;九层之台&#xff0c;起于垒土&#xff1b;千里之行&#xff0c;始于足下。为者败之…

查缺补漏系统学习 EF Core 6 - 原始 SQL 查询

推荐关注「码侠江湖」加星标&#xff0c;时刻不忘江湖事这是 EF Core 系列的第五篇文章&#xff0c;上一篇文章盘点了 EF Core 中的几种数据查询方式。但是有有时候&#xff0c;我们可能无法用标准的 LINQ 方法完成查询任务。或者编译后的 LINQ 查询&#xff0c;没有我们想要的…