首页 > 其他分享 >CH06_函数

CH06_函数

时间:2024-06-11 20:46:07浏览次数:10  
标签:函数 num2 int CH06 返回值 include num1

CH06_函数


概述

作用:将一段可复用的代码封装起来,减少代码重复。

一个较大的程序,一般分为若干个程序块,每个模块实现特定的功能。

函数的定义

函数的定义一般主要有5个步骤:

  1. 返回值类型
  2. 函数名
  3. 参数列表
  4. 函数体语句
  5. 返回值

语法:

返回值类型 函数名(参数列表){
    函数体语句
    return 返回值;
}
  • 返回值类型:一个函数可以返回一个值
  • 函数名:给函数起的名称
  • 参数列表:使用该函数时,传入的数据
  • 函数体语句:花括号内的代码,函数内需要执行的语句
  • return表达式:和返回值类型挂钩,函数执行完后,返回相应的数据。

示例:

int add(int num1, int num2) {
	int sum = num1 + num2;
	return sum;
}

函数的调用

功能:调用定义好的函数

语法:参数名(参数)

示例:

#include <iostream>
using namespace std;


int add(int num1, int num2) {
	int sum = num1 + num2;
	return sum;
}

int main() {
	int num1 = 15, num2 = 5;

	//调用方法
	int sum = add(num1, num2);
	
	//显示结构
	cout << "结果:" << sum << endl;

	system("pause");
	return 0;
}

值传递

值传递,就是函数调用时实参将数值传入给形参

值传递时,在方法中对参数改变,对实参不会有任何影响。

示例:

#include <iostream>
using namespace std;

void swap(int num1, int num2) {
	int temp = num1;
	num1 = num2;
	num2 = temp;

	cout << "num1:" << num1 << endl;
	cout << "num2:" << num2 << endl;
}

int main() {
	int num1 = 15, num2 = 5;

	//调用前
	cout << "num1:" << num1 << endl;
	cout << "num2:" << num2 << endl;
	cout << "---------------------------" << endl;

	//调用方法
	swap(num1, num2);
	cout << "---------------------------" << endl;
	

	//调用后
	cout << "num1:" << num1 << endl;
	cout << "num2:" << num2 << endl;
	cout << "---------------------------" << endl;

	system("pause");
	return 0;
}

函数的常见样式

常见形式:

  1. 无参无返回值
  2. 有参无返回值
  3. 无参有返回值
  4. 有参有返回值

示例:

#include <iostream>
using namespace std;

void fun1() {
	cout << "调用了无参无返回值的方法" << endl;
}

void fun2(int num) {
	cout << "调用了有参无返回值的方法" << endl;
	cout << "参数num:" <<num<< endl;
}

int fun3() {
	cout << "调用了无参有返回值的方法" << endl;
	cout << "返回值:10"  << endl;

	return 10;
}

int fun4(int num) {
	cout << "调用了有参有返回值的方法" << endl;
	cout << "参树:"<<num << endl;
	cout << "返回值:" << (num+5) << endl;

	return num+5;
}



int main() {
	
	int num = 10;

	//fun1();
	//fun2(num);
	//fun3();
	fun4(num);

	system("pause");
	return 0;
}

函数的声明

作用:告诉编译器函数名称及如何调用函数。函数的实际主体可以单独定义。

函数的声明可以多次,但是函数的定义只能有一次。

示例:

#include <iostream>
using namespace std;


//函数声明
int max(int a, int b);
int max(int a, int b);

//函数定义
int max(int a, int b) {
	return a > b ? a : b;
}


int main() {

	int a = 10, b = 20;

	cout << "最大值:" << max(a, b) << endl;

	system("pause");
	return 0;
}

函数的分文件编写

作用:让代码结构更加清晰

步骤:

  1. 创建后缀名为.h的头文件
  2. 创建后缀名为.cpp的源文件
  3. 在头文件中写函数的声明
  4. 在源文件中写函数的定义

示例:

//头文件
#pragma once
#include<iostream>
using namespace std;

//实现两个数字交换的函数的声明
void swap(int a, int b);


#include "swap.h"

//函数的定义
void swap(int a, int b) {
	int temp = a;
	a = b;
	b = temp;

	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
}

#include<iostream>
#include "swap.h" //引入头文件

int main() {

	//调用方法
	swap(10, 20);

	system("pause");
	return 0;
}

标签:函数,num2,int,CH06,返回值,include,num1
From: https://www.cnblogs.com/kaige-chen/p/18242670

相关文章

  • MFC案例:利用SetTimer函数编写一个“计时器”程序
    一、希望达成效果    利用基于对话框的MFC项目,做一个一方面能够显示当前时间;另一方面在点击开始按钮时进行读秒计时,计时结果动态显示,当点击结束时读秒结束并保持最后结果。二、编程步骤及相关代码、注释   1、启动VS->创建新项目->MFC应用-项目名称:MFCtimer->......
  • 静态数据成员/静态成员函数/运算符重载
    搭建一个货币的场景,创建一个名为RMB的类,该类具有整型私有成员变量yuan(元)、jiao(角)和fen(分),并且具有以下功能:(1)重载算术运算符+和-,使得可以对两个RMB对象进行加法和减法运算,并返回一个新的RMB对象作为结果。(2)重载关系运算符>,判断一个RMB对象是否大于另一个RMB......
  • wimlib API 提供了一系列用于处理 Windows 映像文件(.wim 文件)的函数和数据结构,使开发
    wimlibAPI提供了一系列用于处理Windows映像文件(.wim文件)的函数和数据结构,使开发人员能够在其应用程序中集成对WIM文件的创建、修改和提取功能。以下是一些常见的wimlibAPI:WIM文件的创建和初始化:wimlib_create_new_wim():创建一个新的WIM文件。wimlib_open_wim():......
  • C程序函数调用&系统调用
    理解程序的执行我们要知道CPU可以自由地访问寄存器、内存。另外,程序是由操作系统执行的,所以操作系统能够控制程序的所有执行情况,限制程序的行为。程序地执行过程:程序是一个二进制文件,包含程序的代码指令、代码中的文本信息等(参考C语言的程序的各种段)执行一个程序后,会将这个二......
  • 箭头函数
    基本用法ES6允许使用“箭头”(=>)定义函数。varf=v=>v;varf=function(v){returnv;};如果箭头函数不需要参数或需要多个参数,就使用一个圆括号代表参数部分。varf=()=>5;//等同于varf=function(){return5};varsum=(num1,num2)=>nu......
  • C# 字段 属性 方法 构造函数 索引器 事件 嵌套类型 常量 运算符重载
    字段声明字段字段初始化静态字段常量字段只读字段字段的访问然而属性声明属性自动实现的属性只读属性只写属性属性的逻辑处理属性的访问修饰符属性和字段的区别属性的用途总结索引器索引器的基本语法使用索引器索引器的关键点语法参数访问和设置异常处理性能重载使用......
  • 如果引用另一个文件函数
    提问Rust如果引用另一个文件函数回答使用pubpubfnfib(n:u32)->u32{returnifn<2{n}else{fib(n-1)+fib(n-2)}}参考https://rustwiki.org/zh-CN/book/ch07-05-separating-modules-into-different-files.html#:~:text=Rust......
  • C/C++单元测试如何解决非虚函数对象依赖
    如何解决非虚函数对象依赖随着事物的接触越来越多,了解的越来越深入,我们总会发现一些新的问题或者不足。就像前文提到的一样,我们在面对有对象的虚函数依赖的时候,可以使用gmock框架来为我们提供方便的模拟期望值,以便我们能撇除外界的影响(依赖)从逻辑上设计单元测试并持续的......
  • 【JavaScript】内置对象 - 字符串对象 ⑦ ( String 字符串替换 | replace 函数 | repl
    文章目录一、String字符串替换1、replace函数替换字符串2、使用replace函数替换所有匹配字符串3、replaceAll函数替换字符串二、String字符串转数组1、split函数切割字符串2、代码示例-切割字符串String字符串对象参考文档:https://developer.mozilla.......
  • 流畅的python--第十章 使用一等函数实现设计 模式
    经典的策略模式示例10-1实现Order类,支持插入式折扣策略fromabcimportABC,abstractmethodfromcollections.abcimportSequencefromdecimalimportDecimalfromtypingimportNamedTuple,OptionalclassCustomer(NamedTuple):name:strfidelity:intcl......