【C语言】函数的调用和参数说明

        本篇继续进行函数的讲解,代码均来自于VS环境下。

目录

一、函数的嵌套调用

 二、函数的递归调用

 三、数组作为函数参数

1.数组元素作函数实参

2.一维数组名做函数的参数

一、函数的嵌套调用

        C语言的函数定义是相互独立、相互平行的,即不能嵌套定义,但可以嵌套调用函数,即在调用一个函数的同时再调用一个函数。

【例1】输入4个整数,找出其中最大的数。用定义函数来完成。

#include<stdio. h>
int main()
{ 
    int max4(int a,int b,int c,int d);
    int a,b,c,d,max;
    printf("Please enter 4 interger numbers:");
    scanf("%d %d %d %d",&a,&b,&c,&d);
    max=max4(a,b,c,d);
    printf("max=%d \n",max);
    return 0;
}

int max4(int a,int b,int c,int d)
{ 
    int max2(int a,int b);
    int m;
    m=max2(a,b);    
    m=max2(m.c);    
    m=max2(m,d);    
    return(m);    
}

int max2(int a,int b)
{
    if(a>=b)
    return a;
    else
    return b;
}
    

 

        可以清楚地看到,在主函数中要调用 max4 函数,因此在主函数的开头,要对max4函数作声明。在max4函数中3次调用max2函数,因此在max4函数的开头要对max2函数作声明。由于在主函数中没有直接调用max2函数,因此在主函数中不必对max2 函数作声明,只须在 max4 函数中作声明即可。
        max4函数执行过程是这样的:第1次调用max2函数得到的函数值是a和b中的最大者,把它赋给变量m,第2次调用max2得到m和c中的最大者,也就是a,b,c中的最大者,再把它赋给变量m。第3次调用max2得到m和d中的最大者,也就是a,b,c,d中的最大者,再把它赋给变量m。这是一种递推方法,先求出2个数的大者;再以此为基础求出3个数的大者;再以此为基础求出4个数的大者。m的值一次一次地变化,直到实现最终要求。

程序改进:
(1)可以将max2 函数的函数体改为只用一个return语句,返回一个条件表达

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Mr_star_galaxy

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

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

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

打赏作者

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

抵扣说明:

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

余额充值