C++ 函数教程一之函数基础

参考资料:

C++ Primer 第 5 版

一. 函数基础

1.1 什么是函数

函数是一个命名了的代码块,函数也被称为接口,顾名思义,方便别人调用

int Add(int iNumberA, int iNumberB) //iNumberA,iNumberB 均为形参
{
    int iTotal = iNumberA + iNumberB;

    return iTotal;
}

1.2 函数的组成

四个部分:返回类型,函数名字,由 0 个或多个形参组成的列表,函数体(必须放在一对花括号内)

如上例所示,int 为返回类型,Add 是函数名字,int iNumberA, int iNumberB 为形参列表,中括号内的两行代码为函数体

1.3 调用函数

int iValA = 5, iValB = 6;
int iCount = Add(iValA, iValB); //iValA, iValB 均为实参

调用函数执行的 2 项工作:实参初始化函数对应的形参,将控制权转移给被调用函数(程序执行被调用函数,主函数的执行被暂时中断)

return 语句功能:返回 return 语句中的值,将控制权从被调函数转移回主调函数

1.4 形参和实参

原则:个数统一,类型匹配,顺序对应

Add(4); //错误,参数个数少了 1 个
Add(4, 5, 6); //错误,参数个数多了 1 个
Add("aaa", "bbb"); //错误,参数类型不同

1.5 形参列表

每个变量的类型说明符都要写出来,任意两个形参不能同名

1.6 返回类型

返回类型是 void,表示函数不返回任何值,返回类型不能是数组或函数类型,但可以是指向数组或函数的指针

1.7 小练习

1.7.1 实参与形参的区别:实参是传递给函数的实际值,形参是函数定义的,主要是限定传给此函数的变量类型

1.7.2 编写函数实现,用户输入一个数字,计算生成该数字的阶乘,在 main 函数中完成调用

//Visual Studio 2017
#include "pch.h"
#include 
#include 

using namespace std;

int Factorial(int iNumber)
{
    int iResult = 1;
    while (iNumber > 1)
    {
        iResult *= iNumber;
        iNumber--;
    }
    return iResult;
}

int main()
{
    cout << "请输入一个数字:";
    int iNum;
    cin >> iNum;
    int iRst = Factorial(iNum);
    cout << "阶乘结果为:" << iRst;
}

1.7.3 编写一个函数输出其实参的绝对值

int AbsoluteValue(int iNumber)
{
	if (iNumber < 0)
	{
		iNumber = -iNumber;
	}
	return iNumber;
}

1.8 局部对象

形参和函数体内定义的变量称为局部变量,仅在函数的作用域内可见

只存在于块执行期间的对象称为自动对象

static 修饰,局部静态对象,直到程序终止时才销毁

小练习:

1.8.1 说明形参、局部变量以及局部静态变量的区别,编写一个函数,同时用到这三种形式

形参是局部变量的一种,局部变量还包括函数体内的变量,作用于在函数体的内部,静态局部变量在程序终止时才销毁

int Add(int iNUmA, int iNumB)
{
    static int iTotal = iNumA + iNumB;

    return iTotal;
}

1.8.2 编写一个函数实现,当它第一次调用时返回 0,以后每次被调用返回值加 1

int Count()
{
    static int iCount = 0;

    return iCount++;
}

1.9 函数声明

函数声明放在头文件中,无须函数体,只能定义一次且放在源文件中

1.10 分离式编译

.h 文件放声明,.cpp 文件放实现

https://blog.csdn.net/dreamerway/article/details/24991099

 

 

 

你可能感兴趣的:(C++)