C++学习日记(函数)

本文详细介绍了C++中的函数,包括概念、声明、定义、返回值、形参表、参数传递方式、函数调用、内联函数、指针与函数的结合使用以及函数重载。强调了函数在程序中的重要性和如何通过各种方式优化函数的使用,如内联函数提高效率,以及如何通过函数重载增加代码的灵活性和可读性。
摘要由CSDN通过智能技术生成

函数的概念

输入——>函数体:完成某种功能——>输出(独立的黑匣子)

在C++中,可以将一段经常使用的代码封装起来,在需要使用时直接调用,这就是程序中的函数。

C++程序的执行是从main函数开始的,如果在main函数中调用了其他函数,在调用后程序返回到main函数,在main函数中结束整个程序的运行。

函数分为:无参函数和有参函数

函数的声明

先声明,后使用。

如果需将函数定义放在函数调用后,我们需要采用函数声明的方式。
格式:

函数返回值类型   函数名称(形参列表)
int select_biggest(int a,int b,int c);

函数原型:函数返回类型、函数名称和形参列表
函数声明后有分号,是语句。

函数声明可以定义在函数外部,则当前文件从声明位置到文件结束的任何函数中都可以调用该函数。

函数定义包括函数头和函数体,函数声明是为了编译的需要,知道这个函数的基本信息。

函数声明在头文件中更加美观和容易修改重利用。

函数的定义

无参函数:

函数返回值类型(可以是void) 函数名()
{
定义部分
语句部分
(有返回值是一定要有return语句)
}

有参函数

函数返回值类型 函数名(形式参数列表)
{
定义部分
语句部分
}

函数的返回值

return语句的后面可以是一个值,也可以是能够得出值的表达式

C++函数中必须指定返回类型
可以使整型、浮点型、类类型、符合类型、或是空类型(void)

注意:函数返回值类型一般应该与return语句中的表达式类型一致,如果不一致应当以函数返回值(函数名前的类型)类型为准。

//函数返回类型与return类型不同
#include<iostream>
using namespace std;
 //声明函数,返回值为int类型
int select_biggest(int a, int b, int c); 
void main() 
{
    double a, b, c;
    cout << "a= ";
    cin >> a;
    cout << "b= ";
    cin >> b;
    cout << "c= ";
    cin >> c;
    cout << "The biggest number is " << select_biggest(a, b, c);//调用函数
    cout << endl;
    system("pause");
}
int select_biggest(int a, int b, int c)  //定义被调用函数
{
    double biggest;
    if (a > b)
        biggest = a;
    else
        biggest = b;
    if (biggest > c)
        return biggest;
    else
        return c;
}

这里写图片描述

函数的形参表

int get_bigger(int a,int b,int c);//right
int get_bigger(int a, b, c);//wrong

形参表可为空(不填或填void)

调用函数时,每一个实际参数的类型都必须与对应的形参类型相同,或者是可以转换成形参类型的数值类型。在这种情况下,实参会被隐式的转换成形参的类型,再进行数据传递。(实参被转换为形参类型、实参——>形参)

最好是实参和形参的类型保持一致,否则可能造成精度的缺失,导致效果不同。

函数的参数传递

非引用类型的形参,赋值的是值;
引用类型的形参,它只是实参的别名,不会赋值实参的值。

在定义函数的时候制定的形参,在没有出现函数调用时,并不占用内存中的存储单元。在发生函数调用时,函数中的形参才被分配内存单元,调用结束后形参所占用的内存单元也会被释放。

引用形参

//未使用引用形参的互换函数
#include<iostream>
using namespace std;
void swap(int x, int y); //声明函数
void main()
{
    int a = 10;
    int b = 20;
    //输出调用函数之前的a和b
    cout << "Before change :" << endl;
    cout << "
  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值