C语言基础:函数的嵌套调用与链式访问

 文章目录:

1.嵌套调用

2.链式访问:


1.嵌套调用

     嵌套调用就是函数之间的互相调用,每个函数就像一个乐高零件,正是因为多个乐高的零件互相无缝的配合才能搭建出精美的乐高玩具,也真是因为函数之间有效的互相调用,最后写出相对大型的程序。

例:

#include
#include
_Bool is_leap_year(int y)
{
    if (((y % 4 == 0) && ((y % 100) != 0)) || (y % 400 == 0))
        return true;
    else
        return false;
}
int get_days_month(int y, int m)
{
    int days[] = { 0,31,28,31,30,31,30,31,31,30,31,30,31 };
        //            1  2  3  4  5  6  7  8  9 10 11 12    刚好对应月份
    int day = days[m];
    if (is_leap_year(y) && m == 2)
    {
        day += 1;//闰年是29天,所以调用一个函数来判断是否为闰年
    }
    return day;
}
int main()
{
    int year = 0;
    int month = 0;
    scanf("%d %d", &year, &month);//2008 8
    int days = get_days_month(year, month);
    printf("%d\n", days);
}

这一段代码,完成了一个独立的功能。代码中反应了不少函数调用,但是注意函数不能嵌套定义

函数自己调用自己,叫做函数递归

2.链式访问:

所谓链式访问就是将一个函数的返回值作为另一个函数的参数,就像链条一样将函数串起来就是函数的链式访问。

#include

int main()
{
    printf("%d\n", strlen("abcdef"));//strlen函数的返回值直接作为printf函数的参数
    return 0;
}
int main()
{
    printf("%d", printf("%d", printf("%d", 43)));
    return 0;
}

这个函数的结果是4321,

C语言基础:函数的嵌套调用与链式访问_第1张图片

 

printf函数返回值值是打印在屏幕上字符的个数!

所以首先执行printf(“%d”,43),打印43出来,返回值是2(43两个字符),打印2,返回值是1(2一个字符) ,所以最后打印4321

你可能感兴趣的:(C语言基础详解,c语言,算法,开发语言)