再学C++之函数模块

1、概述

作用:

  • 将一段经常使用的代码封装起来,以减少代码的重复
  • 将一个大型的程序分解为多个小的程序段,每个模块实现特定的功能

2、函数的定义

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

函数的基本语法:
返回值类型 函数名 (参数列表)
{
函数体语句
return 表达式
}

备注:并不是所有的都是必要的
示例:

int add(int num1, int num2)//有参数,有返回值
{
	int sum = num1 + num2;
	return sum;
}
void print()//无参数,无返回值
{
	cout << "hello world";
}
void f(int a)//有参数,无返回值
{
	cout << a << endl;
}
int add()//无参数,有返回值
{
	int num1=10;//这里需要给与初值,否则会出现使用未初始化的变量的错误
	int num2=20;
	int sum = num1 + num2;
	return sum;
}

在这里插入图片描述

3、函数的调用

  1. 功能:使用定义好的函数
  2. 语法:函数名(参数)
int add(int num1, int num2)//定义好的函数
{
	int sum = num1 + num2;
	return sum;
}
int sum=add(10, 20);//使用定义好的函数

4、值传递

  • 所谓值传递,就是函数调用时实参将数值传入形参
  • 值传递时,如果形参发生改变,并不会影响实参的值
void swap(int num1,int num2)
{
	cout << "交换前:" << endl;
	cout <<"num1:"<<num1 << endl;
	cout << "num2:" << num2 << endl;
	int temp = num1; num1 = num2; num2 = temp;
	cout << "交换后:" << endl;
	cout << "num1:" << num1 << endl;
	cout << "num2:" << num2 << endl;
}

形参的值发生了改变

    int a = 10;
	int b = 20;
	swap(a, b);
	cout << "实参中的值:" << endl;
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;

实参的值并未发生变化

5、函数的声明

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

  • 现在版本的编译器,不在main函数中声明,也不会报错,但是函数的调用不能执行。
int main()
{

	int a = 10;
	int b = 20;
	swap(a, b);
	cout << "实参中的值:" << endl;
	cout << "a=" << a << endl;
	cout << "b=" << b << endl;
	/*int sum=add(10, 20);
	cout << "sum=" << sum << endl;*/

	system("pause");
	return 0;
}
void swap(int num1, int num2)
{
	cout << "交换前:" << endl;
	cout << "num1:" << num1 << endl;
	cout << "num2:" << num2 << endl;
	int temp = num1; num1 = num2; num2 = temp;
	cout << "交换后:" << endl;
	cout << "num1:" << num1 << endl;
	cout << "num2:" << num2 << endl;
}

函数有声明
函数没有声明

注意:函数的声明可以多次,函数的定义只能有一次

6、函数的分文件编写

作用:使得代码结构更加清晰
步骤:

  1. 创建.h的头文件
#pragma once//防止头文件重复
#include<iostream>//给出输入输出流
using namespace std;//给出标准命名空间
  1. 创建.cpp 的源文件
#include"add.h"
  1. 在头文件中写函数的声明
int add(int num1, int num2);

  1. 在源文件中写函数的定义
int add(int num1, int num2)
{
	int sum = num1 + num2;
	return sum;
}

在这里插入图片描述

在这里插入图片描述

源文件要加上头文件

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值