【C语言初阶】函数的嵌套调用和链式访问
五、函数的嵌套调用和链式访问
1 嵌套调用
根据实际需求,函数之间是可以互相调用的。
代码示例:
#include<stdio.h>
void new_line()
{
printf("hehe\n");//函数调用
}
void line()
{
int i = 0;
for (i = 0; i < 3; i++)
{
new_line();//函数调用
}
}
int main()
{
//函数的嵌套调用
line();//函数调用
new_line();//函数调用
return 0;
}
解释说明:
1 一个函数体中可以调用另一个函数,就称为函数的嵌套调用。
2 函数可以嵌套调用,但是不可以嵌套定义。
3 函数是C程序中的基本模块,不同的函数都在同一层级。
2 函数的链式访问
一个函数的函数调用充当另一个函数的参数。即将一个函数调用后的返回值作为另一函数的参数。
2.1 示例1
代码示例:
#include<stdio.h>
#include<string.h>//strlen()、strcat()
int main()
{
//函数嵌套示例1
char arr[20] = "hello";
int ret = strlen(strcat(arr, "world"));
printf("%s\n", arr);//helloworld
printf("%d\n", ret);//10
return 0;
}
解释说明:
1 strcat(arr, "world")
strcat(dest, source)
函数用来拼接字符串,将 source
字符串拼接到 dest
之后。
从 dest
的 \0
位置处开始拼接,直到拼接完 source
的 \0
。
strcat
函数返回的是完成字符拼接后 dest
的地址。
2 strcat
函数调用后的返回值充当 strlen
函数调用的实参。
2.2 示例2
代码示例:
#include<stdio.h>
int main()
{
//函数嵌套示例2
printf("%d\n", printf("%d", printf("%d", 43)));//4321
printf("%d\n", printf("%d", printf("43")));//4321
printf("%d\n", printf("%d ", printf("43 ")));//43 3 2
//printf函数的返回值是打印在屏幕上字符的个数
return 0;
}
解释说明:
1 printf
函数返回打印字符的个数。
前两个语句,最内层 printf
打印4、3,返回值是2;中间层 printf
打印2,返回值是1;最外层 printf
打印1,然后换行。
最后一个语句,最内层 printf
打印4、3、空格,返回值是3;中间层 printf
打印3、空格,返回值是2;最外层 printf
打印2,然后换行。
总结:
本节介绍了函数的嵌套调用和链式访问。
感谢您的阅读!如有任何错误,欢迎您的批评指正!