C++从入门到放弃--9.函数

文章介绍了函数的基本概念,包括函数作为一个可重复使用的代码段,具有入口(参数)和出口(返回值)。讨论了函数的定义、声明和调用,提供了int类型函数time4()的例子来说明。还提到了函数的声明方式以及调用的三种形式:直接调用、插入调用和作为其他函数参数的调用。
摘要由CSDN通过智能技术生成

目录

9.1.函数是什么

9.2.定义

9.3 声明

9.4 调用


Hello~大家好啊,今天学函数

9.1.函数是什么

之前,我们的程序里面都有一个main()函数,它里面的东西就是我们想要实现的东西,但是我们编的程序真的只能那样只有一个main()吗?NO! NO! NO!

首先,我们先了解一下函数的概念,比如。。。。。。printf()!

平常我们都是这样调用的:

printf("NO.1 %d,NO.2 %c", n, c);

所以我们分析一下:

看注释就明白了,理解什么叫做函数了吗?

实在不行我给你们贴字:

计算机的函数,是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时,还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理;所谓出口,就是指函数的函数值,在计算机求得之后,由此口带回给调用它的程序。

                                                                                                                                                                                                                                                                           ————百度百科

 好,理解这个概念之后,开始实操

函数三件套:

  • 定义
  • 声明
  • 调用

开始吧~

9.2.定义

函数跟变量一样,都是需要“先定义后使用”的,看:

<返回值类型> <函数名>(<形参列表>) {
    语句块
}

呀,我们一看,这不是正好可以套到main()上吗:

int /*返回值类型*/ main /*函数名*/ (/*形参列表*/) {
    //语句块 
}

所以一看,main()没有形参,半个都没有,但是以后的某些程序里main()是有形参的!!!

int main(int argc, char * argv) {
    //...
}

至于为什么,啧,串知识点了……

好,继续

比如我要别比如了,我们看一下返回值类型这一块,能返回的有很多:

  • 基础数据类型;
  • void;
  • 类,结构,指针(后面会学到)

额,第一种第三章那个表里所有的类型都可以作为返回值类型,void,就是没返回类型的,

我们不妨可以这样理解函数的工作过程:

函数就像一个机器,经过它的处理,我们传的形参7变成了28,

现在我们定义人生中的第一个函数,那就是time4(),看:

int time4(int x) {
    return x * 4;
}

 它的返回值是int类型,所以x*4被存到了一个int变量(这个无名变量会被编译器临时保管,函数调用完成会立刻消失)

我们一行一行分析,第一行可以看见信息:

  • 返回值:int
  • 函数名:time4
  • 形参列表:int x

语句块中我们使用return语句把x*4返回给调用它的东西,比如:

#include <iostream>
using namespace std;

int time4(int x) {
    return x * 4;
}
int main() {
    cout << time4(2);
    return 0;
}

我们可以发现输出为:

8

是不是!跟我们预期的一样,但是它不能超过int值的范围。

我们先把定义丢到main()的前面,一会我们在讲丢到后面会发生什么。

9.3 声明

如果我们把time4()丢到main()的前面会发生什么?

但是不代表不能这么做,我们可以在前面先声明一下:

#include <iostream>
using namespace std;

int time4(int);

int main() {
	cout << time4(2);
	return 0;
}

int time4(int x) {
	return x * 4;
}

 在定义的时候,注意以下几点:

  • 把形参的名字去掉,只留类型;(也可以加上名字)
  • 不要语句块,在后面加分号

我做的程序也是这么做的:

void getmes_console();
int calc_console();
int fcalc_console();
int precalc_console();
int prefcalc_console();
int powcalc_console();
int sqrcalc_console();
int admin_console();

9.4 调用

调用有三种形式:

  • 直接调用;
  • 插入调用;
  • 作为其他函数的形参调用

看:

int time4(int x) {
    return x * 4;
}
int time5(int x) {
    return x * 5;
}
int main() {
    int n = time4(2);         //插入调用
    time5(2);                 //直接调用
    cout << time4(time5(5));  //作为其他函数的形参吊用
    return 0;
}

当然,如果直接调用的函数有返回值,那就没用了。

还有什么不懂的吗?问

拜~

允许转载,请注明出处

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值