C语言第七课:函数(下)——嵌套调用与链式访问、声明与定义、模块化开发与代码的隐藏

目录

前言:

一、嵌套调用:

二、链式访问:

三、函数的声明与定义:

1.函数的声明:

2.函数的定义:

3.函数声明、定义实例:

        判断闰年示例总览:

         game.h文件:

         game.c文件:

         test.c文件:

四、模块化开发优势:

五、模块化开发实现对代码的隐藏(★★★★★): 


前言:

        在上文中小伙伴们结合文末的习题练习,应该对函数的分类、参数以及调用有了一定的掌握。本文我们将进入到嵌套调用链式访问声明定义的学习中。

        今天要学习的内容难度相对较低,希望各位小伙伴们能够认真学习,将其牢固掌握。

一、嵌套调用:

        在小伙伴们们使用函数时,函数与函数之间可以根据实际需求进行组合,即可以互相调用。

        ★这里特别要注意:函数可以嵌套调用,但是不能嵌套定义

        我们来简单举个例子:

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

//自定义函数二:
void new_line()
{
	printf("嵌套\n");
}

//自定义函数一:
void three_line(int x)
{
	for (x = 0; x < 3; x++)
	{
		new_line();
		//将自定义函数二嵌套进自定义函数一中进行嵌套调用
		//函数可以嵌套调用,但不可以嵌套定义
	}

}

int main()
{
	int a = 0;
	three_line(a);

	return 0;
}

        上述代码中我们可以看到,我们自定义了函数new_linethree_line,在主函数中我们调用了函数three_line,并在函数three_line中嵌套调用了函数new_line

        当主函数运行至three_line(a)时调用了自定义函数three_line,其在获取参数后将参数传递给函数,函数开始执行,循环过程中调用函数new_line,输出目标字符。

        我们将其编译运行发现,函数可以进行嵌套调用

        函数的嵌套调用较为灵活,对各位小伙伴们的要求就是能够结合实际情况,灵活的使用嵌套结构来调用函数以提高代码的运行效率。 

二、链式访问:

        函数的访问就是把一个函数的返回值作为另外一个函数的参数。

        我们来看这个例子:

#define _CRT_SECURE_NO_WARNINGS 1

#include<stdio.h>

int main()
{
	printf("%d", printf("%d", printf("%d", 43)));

	return 0;
}

        各位小伙伴们认为这段代码的输出结果是什么呢?

        答案是——4321:

        到这里肯定就有小伙伴们要问了,这是为什么呢?难道不应该是43吗?在这个地方,有一个知识点需要小伙伴们来了解一下:printf 函数。小伙伴们就要问了,printf 函数有什么可了解的?功能不就是在屏幕上按照我们给定的格式打印内容吗?

        这里牵扯到的知识点,就是关于printf 函数的返回值问题。我们在上节课提到的查询工具中对printf 函数进行查询,可以看到如下内容(向下拉并使用自带页面翻译进行翻译后):

        我们可以看到,在printf 函数的介绍中,返回值的内容是:成功后,将返回写入的字符总数

        现在回到我们的代码中来看:

printf("%d", printf("%d", printf("%d", 43)));

        在这行代码中,最内层的“ printf("%d", 43) ”毫无疑问在屏幕上打印出了“ 43 ”的字样。重点来了:在其完成打印后,返回的是写入的字符总数,即“ 43 ”的字符数,返回值为 2。也就是说此时的代码相当于:

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

銮崽的干货分享基地

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值