C++中的函数部分学习

本文介绍了函数在程序中的作用,通过模块化编程将任务分配到不同函数,使main函数更简洁。详细阐述了函数声明和定义的语法,包括返回值类型、函数名和参数列表,并强调了声明与定义的一致性。同时,举例说明了如何声明和定义函数,以及如何调用函数,并给出了函数在实际程序中的应用示例。
摘要由CSDN通过智能技术生成

函数的声明和定义

在复杂的程序中,如果全部的代码都写在main函数中,main函数体将非常庞大臃肿。

把任务分工到其它的函数中,main函数只负责程序的核心流程,具体的任务由其它函数完成。

这种思想就是模块化编程。

声明和定义函数的语法:

    返回值的数据类型 函数名(参数一的数据类型 参数一, 参数二的数据类型 参数二,……)
    {
        实现函数功能的代码。
        return 返回值;
    }

函数的声明:让编译器知道函数的存在,包括返回值的数据类型、函数名和参数列表。

函数的定义:函数的实现过程。

注意:

  • 函数的声明和定义可以书写在一起,也可以分开,如果书写在一起,一般放在main函数的上面,如果分开,一般在main函数的上面声明,在main函数的下面定义。

  • 如果函数的声明和定义分开书写,函数的声明后面一定要有分号,函数的定义后面一定不能写分号。

  • 在同一个程序中,函数只需要声明和定义一次,也可以多次声明,但只能定义一次。

  • 函数的声明必须和函数的定义一致(返回值的数据类型、函数名和参数列表),如果函数名和参数列表不同,表示它们不是同一个函数。

  • return语句返回值的数据类型必须与函数的声明一致。

  • 在函数体中,return语句可以多次使用。

  • 如果函数的重点是实现功能,不关心返回值,返回值的数据类型填void,return语句后面就空着。

  • 函数可以没有任何参数。

  • 函数名是标识符,必须满足标识符的命名规则。

  • 在函数的声明和函数的定义中,参数命名可以不同,但是没必要这么书写。

示例:

#include <iostream>         // 包含头文件。
using namespace std;        // 指定缺省的命名空间。

// 写一个函数,给它两个整数,让它比较两个整数的大小,返回较大的那个整数。
int max(int a, int b);     // 函数声明后面的分号不能少。
// 写一个函数,给它一个字符串,让它在控制台显示出来。
void print(string str);   
// 写一个函数,在控制台输出九九乘法表。
void printmt();

int main()
{
    
}

int max(int a, int b)      // 函数定义后面不能加分号。
{
    if (a > b) return a;
    
    return b;
}

void print(string str)
{
    cout << str << endl;

    return;
}

void printmt()
{
    // 在控制台输出九九乘法表。
    for (int ii = 1; ii <= 9; ii++)
    {
        for (int jj = 1; jj <= ii; jj++)
        {
            cout << ii << "*" << jj << "=" << ii * jj << " ";
        }

        cout << endl;
    }

    return;
}

函数的调用

语法:函数名(参数一,参数二,……)

注意:

  • 声明函数的代码必须放在调用之前,定义函数的代码可以放在调用之后。

  • 调用函数的时候,参数列表必须与函数的声明一致(参数的个数、书写的顺序和数据类型)。

  • 不管在什么地方,都不能调用main函数,但是,在普通函数中,可以调用其它的普通函数。

  • 调用函数的代码可以独占一条语句,也可以用于表达式(赋值运算、算术运算、关系运算、函数的参数)。

  • 如果函数用于表达式中,返回值的数据类型要匹配(否则可能会被隐式转换或编译错误)。

  • 如果函数有返回值,可以不关心它,忽略它。

示例:

#include <iostream>         // 包含头文件。
using namespace std;        // 指定缺省的命名空间。

// 写一个函数,给它两个整数,让它比较两个整数的大小,返回较大的那个整数。
int max(int a, int b);     // 函数声明后面的分号不能少。
// 写一个函数,给它两个参数:no-超女编号,str-表白的内容。
void print(int no,string str);   
// 写一个函数,在控制台输出九九乘法表。
void printmt();

int main()
{
    cout << "max(5,8)=" << max(5,8) << endl;

    print(8, "请借给我五分钱吧。");

    printmt();
}

int max(int a, int b)      // 函数定义后面不能加分号。
{
    if (a > b) return a;
    
    return b;
}

void print(int no, string str)
{
    cout << "亲爱的"<<no<<"号:"<<str << endl;

    return;
}

void printmt()
{
    // 在控制台输出九九乘法表。
    for (int ii = 1; ii <= 9; ii++)
    {
        for (int jj = 1; jj <= ii; jj++)
        {
            cout << ii << "*" << jj << "=" << ii * jj << " ";
        }

        cout << endl;
    }

    return;
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值