作用:将一段常用的代码封装起来,减少重复代码;
函数定义5个步骤:返回值类型、函数名、参数列表、函数体语句、return表达式
int add(int num1,int num2){ int res = num1 + num2; return res; }
一、函数声明
通过函数声明,表明有这么一个函数存在:
#include<iostream> using namespace std;
//函数声明,可以只声明参数的类型
//由于进行了函数声明,虽然max函数在主函数之后,此时仍然是可以被调用的 int max(int,1)">); main() { int a = 1; int b = 2int res = max(a,b); cout << res << endl; system("pause"); return 0; }
//函数定义 int a,1)"> b) { int res = a > b ? a : b; res; }
函数可以声明多次,但是只可以定义一次。
二、函数的分文件编写
函数分文件编写一般有以下四个步骤:
- 创建后缀名为.h的头文件
- 创建后缀名为.cpp的源文件
- 在头文件中写函数声明
- 在源文件中实现函数定义
作用:让代码结构更加清晰。
目录结构:
max.h
#include<iostream> std; int);
second.cpp
#include max.h" ; } res; }
三。值传递和引用传递
1.值传递
什么是值传递?
在函数调用时将实参的值传递给形参;
有什么特点?
值传递时,如果形参发生变化,则不会影响原来实参的值。
#include <iostream> std; void swap( num2) { cout << 交换之前num1的值:" << num1 << endl; cout << 交换之前num2的值:" << num2 << endl; int tmp = num1; num1 = num2; num2 = tmp; cout << 交换之后num1的值:交换之后num2的值: endl; } main() { ; cout << 实参未传入之前a的值:" << a <<实参未传入之前b的值:" << b << endl; swap(a,b); cout << 实参传入之后a的值:实参传入之后b的值:; }
输出:
2.引用传递
什么是引用传递?
在函数调用时将实参的引用(即指针)传递给形参;
引用传递的特点?
引用传递时,如果形参发生变化,则同时会影响原来实参的值。
#include <iostream> int* num1,1)">int*" << *num1 <<" << *num2 <<int tmp = *num1; *num1 = *num2; *num2 = endl; } int* p1 = &a; int* p2 = &b; cout << endl; swap(p1,p2); cout << ; }
输出:
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。