C++入门到理解阶段二基础篇(7)——C++函数
目录
函数作用
将经常使用的代码封装起来,减少重复代码
函数定义
C++ 中的函数定义的一般形式如下:
return_type function_name( parameter list )
{
body of the function
}
在 C++ 中,函数由一个函数头和一个函数主体组成。下面列出一个函数的所有组成部分:
- 返回类型:一个函数可以返回一个值。return_type 是函数返回的值的数据类型。有些函数执行所需的操作而不返回值,在这种情况下,return_type 是关键字 void。
- 函数名称:这是函数的实际名称。函数名和参数列表一起构成了函数签名。
- 参数:参数就像是占位符。当函数被调用时,您向参数传递一个值,这个值被称为实际参数。参数列表包括函数参数的类型、顺序、数量。参数是可选的,也就是说,函数可能不包含参数。
- 函数主体:函数主体包含一组定义函数执行任务的语句。
//求两数之和的函数
int sum(int a, int b) {
return a + b;
}
函数声明
函数声明会告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。函数的声明可以有多个但是声明只有一个,针对上面定义的函数 sum(),以下是函数声明:int sum(int num1, int num2);
在函数声明中,参数的名称并不重要,只有参数的类型是必需的,因此下面也是有效的声明:int sum(int, int);
函数调用
#include <iostream>
using namespace std;
//函数声明
int sum(int m1,int m2);
int main() {
int ret = sum(1, 2);
cout << ret;
}
//求两数之和的函数
int sum(int a, int b) {
return a + b;
}
函数值传递
#include <iostream>
using namespace std;
//函数声明
void swap(int m1,int m2);
int main() {
int a = 1;
int b = 2;
//当做函数的值传递时候,函数的形参发生变化不会影响实参
swap(a, b);
cout << a;//1
cout << b;//2
}
//交换
void swap(int a, int b) {
int temp = b;
b = a;
a = temp;
cout << a;//2
cout << b;//1
}
函数常见的样式
无参无返
无参有返
有参无返
有参有返
函数的分文件书写
为了代码简介复用,有时将函数份文件书写,项目结构
第一步创建后缀名是.h的头文件并声明函数
#include <iostream>
using namespace std;
//函数声明
void swap(int m1, int m2);
第二步创建后缀名是.cpp的源文件,并定义函数
#include <iostream>
#include "sum.h"//要引用头文件
using namespace std;
//交换
void swap(int a, int b) {
int temp = b;
b = a;
a = temp;
cout << a;//2
cout << b;//1
}
第三步使用
#include <iostream>
#include "sum.h"//应用swap函数所在的头文件
using namespace std;
//函数声明
void swap(int m1,int m2);
int main() {
int a = 1;
int b = 2;
swap(a, b);
cout << a;//1
cout << b;//2
}
扫描 关注公众号 java一号。更重要的是小猿愿成为你编程路上的一个朋友!
文章首发地址: www.javayihao.top
首发公众号: java一号
C++入门到理解阶段二基础篇(7)——C++函数的更多相关文章
- C++入门到理解阶段二基础篇(8)——C++指针
1.什么是指针? 为了更加清楚的了解什么是指针?我们首先看下变量和内存的关系,当我们定义了int a=10之后.相当于在内存之中找了块4个字节大小的空间,并且存储10,要想操作这块空间,就通过a这个变 ...
- C++入门到理解阶段二基础篇(6)——C++数组
概述 C++ 支持数组数据结构,它可以存储一个固定大小的相同类型元素的顺序集合.数组是用来存储一系列数据,但它往往被认为是一系列相同类型的变量. 数组的声明并不是声明一个个单独的变量,比如 numbe ...
- C++入门到理解阶段二基础篇(5)——C++流程结构
1.顺序结构 程序从上到下执行 2.选择结构(判断结构) 判断结构要求程序员指定一个或多个要评估或测试的条件,以及条件为真时要执行的语句(必需的)和条件为假时要执行的语句(可选的). C++ 编程 ...
- C++入门到理解阶段二基础篇(3)——C++数据类型
目录 1.数据类型概述 2.基本的内置类型 整型 实型(浮点型) 字符型 转义字符 字符串型 c风格的字符串 c++风格的字符串 布尔类型bool 1.数据类型概述 使用编程语言进行编程时,需要用到各 ...
- C++入门到理解阶段二基础篇(9)——C++结构体
1.概述 前面我们已经了解到c++内置了常用的数据类型,比如int.long.double等,但是如果我们要定义一个学生这样的数据类型,c++是没有的,此时就要用到结构体,换言之通过结构体可以帮我们定 ...
- C++入门到理解阶段二基础篇(4)——C++运算符
目录 算术运算符(进行四则运算) 赋值运算符(表达式的值赋给变量) 比较运算符(表达是比较,返回一个真值或假值) 逻辑运算符(返回表格式的结果真或假) 位运算符 杂项运算符 C++ 中的运算符优先级 ...
- C++入门到理解阶段二基础篇(2)——C++注释、变量、常量、关键字、标识符
目录 1.注释 注释作用 注释的方式 2.变量 变量基本知识 定义变量 3.常量 常量基本知识 整数常量 浮点常量 布尔常量 字符常量 字符串常量 常量定义 使用 #define 预处理器. 使用 c ...
- C++入门到理解阶段二基础篇(1)——简介与环境安装
1.C++ 简介 C++ 是一种静态类型的.编译式的.通用的.大小写敏感的.不规则的编程语言,支持过程化编程.面向对象编程和泛型编程. C++ 被认为是一种中级语言,它综合了高级语言和低级语言的特点. ...
- C++入门到理解阶段二核心篇(1)——c++面向对象概述、内存分析、引用
1.c++内存分区模型 c++程序在运行的过程中,内存会被划分为以下四个分区 代码区:程序的所有程序的二进制代码,包括注释会被放到此区 全局区:存放静态变量.全局变量.常量(字符串常量和const修饰 ...
随机推荐
- python学习-logging
"""#设置输出的日志内容格式fmt = '%(asctime)s %(filename)s %(funcName)s [line:%(lineno)d] %(level ...
- Django项目BBS博客论坛
BBS 项目开发逻辑梳理 第一步:先进行数据库设计 数据库设计规则是: 1.先创建基表:用户表.站点表.文章表.标签表.分类表.文章2标签第三张关系表.点赞点踩表.评论表 2.书写表中的基本含有的字段 ...
- Spring Boot 设置项目名后静态文件相对路径问题
出现问题的原因 server.servlet.context-path=testDemospring.mvc.static-path-pattern=/static/**定义项目名和静态资源路径后发现 ...
- Nginx安装与运行
目录 Nginx安装与运行 安装Nginx 运行 注意事项 Nginx安装与运行 安装Nginx 在Nginx官网下载对应的nginx包(推荐使用稳定版[Stable version]) 上传ngin ...
- CentOS7安装ffmpeg
首先在官网http://ffmpeg.org/download.html下载ffmpeg-4.2.1.tar.bz2 以下为安装步骤: 1.使用工具将源码包上传至Linux主机 2.解压源码包 进入该 ...
- 关联mysql失败_Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon'
关联mysql失败_Server returns invalid timezone. Go to ‘Advanced’ tab and set ‘serverTimezon’ 时区错误,MySQL默认 ...
- 文件系统之parted 分区
parted分区命令 1.分区表区别 我们 Linux 系统中有两种常见的分区表 MBR 分区表(主引导记录分区表)和 GPT 分区表(GUID 分 区表) MBR 分区表:支持的最大分区是 2TB( ...
- Java网络爬虫 Jsoup
一.Jsoup介绍 我们抓取到页面之后,还需要对页面进行解析.可以使用字符串处理工具解析页面,也可以使用正则表达式,但是这些方法都会带来很大的开发成本,所以我们需要使用一款专门解析html页面的技术. ...
- WebShell代码分析溯源(九)
WebShell代码分析溯源(九) 一.一句话变形马样本 <?php $e = $_REQUEST['e'];$arr = array($_POST['pass'] => '|.*|e', ...
- C# 委托汇总
委托汇总以及遗留问题: using System; using System.Collections.Generic; using System.Linq; using System.Text; us ...