函数调用

1. 先声明后调用

先区分一下——函数调用是函数声明规定的,函数的计算是函数的定义规定的。

函数调用必须先进行函数声明,程序运行需要任何被调用的函数有定义。(毕竟不能计算机思,则程序在嘛)

所以总是需要先进行函数定义,才能进行函数声明,当然,也就只需要满足这个要求。

所以函数定义不一定要在程序的开头写,在你想要调用的时候写上就行。

就拿上一篇博文里的程序举例:


#include<iostream>
using namespace std;
int miaoMiao(int meow);    //进行函数声明
int main(){
        cout<<miaoMiao(2)<<"\n";     //函数调用
    }
int miaoMiao(int meow){
     return meow+meow*meow;    //函数定义
}

这就是有返回值的函数调用,这种调用可以看做是一个表达式,其调用目的是为了直接获得计算结果,以输出流的形式输出结果。

2. 定义也可以包括着声明(我觉得这个功能很不错)

这也就是说函数的定义在内容上包含了函数的声明,在意义上也包含了函数的声明。所以可以有定义的情况下忽略掉声明(这时定义必须在声明之前,且由于main函数的特殊性,如果是main函数调用的,需要在main函数之前定义)。就比如:


#include<iostream>
using namespace std;

int miaoMiao(int meow){
     return meow+meow*meow;    //函数定义(代替声明)
}

int main(){
       std:: cout<<miaoMiao(2)<<"\n";     //函数调用
    }

3. 参数传递与匹配

在函数调用的时候,参数不含有类型说明,就只是数值而已,当然,其类型和对应函数声明中的参数类型相一致。

这个参数描述称为实际参数,简称为实参(实参和形参后面会开个帖,到时候把链接写上。)

举个例子,上面的miaoMiao(2)里的2就是实参。

而具有类型说明的函数声明或定义中的参数就叫做形式参数,简称形参。

就如,int a 就是形参,int称为形参类型,a称为形参名。

参数传递就是在函数调用中实参传递给函数体中的形参的过程。传递结束后,被调用的函数就能在运行中使用形参值。

就像是miaoMiao(2)中的2传递给了meow,让miaoMiao这个函数可以运行过程中运行函数体。

需要注意的是,参数传递是讲究类型匹配的,如果实参是int,而形参是double,也许可以带进去,但形参是double,实参是int,带进去可能就会直接报错。

4. 库函数

库函数就是编译器预先写好的函数,库函数有c函数和c++函数。c函数经过改造就可以成为对应的c++库函数。

就像在建模竞赛会用到的中的math.h就是c函数,但通过函数重载等操作,就可以生成c++函数cmath。

这里就举几个例子,字符串处理函数一般都在string.h中,标准输入/输出函数都在stdio.h中。一般我们调用这些库函数,就在开头声明头文件就可以调用了。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值