我是靠谱客的博主 天真豆芽,最近开发中收集的这篇文章主要介绍函数的调用,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

 一.函数调用形式

一般形式为:函数名 (实参列表);

  1. 函数调用语句:把函数调用单独作为一个语句。

    printf_star();

  2. 函数表达式:函数调用出现在一个表达式中,参与其中运算。

    c=2*max(a,b);

  3. 函数参数:函数调用作为另一个函数调用时的实参。

    m=max(a, max(b,c));

2. 函数调用时数据传递

由前面知道,定义函数时,函数名后面的括号里面的变量是形参(形式参数);在主调函数中调用此函数时括号中的参数是实参(实际参数),实参可以是常量、变量、表达式。

例:输入两个整数,要求输出其中较大者,用函数实现。

3 .函数声明

函数声明:把函数的名字、函数类型以及形参的类型、个数和顺序通知给编译系统,以便调用该函数时系统按照此进行对照检查。

函数声明格式如下:函数原型后面加上分号

int max(int x, int y); //完整清晰,参数意义明确

int max(int, int); //精炼,参数意义不明确

函数声明位置

①在文件开头声明,即本文件都可以使用

②在某个函数内部声明,只能在具有声明的函数内使用

③如果主调函数在被调函数的后面,则可以省略声明

二. 函数的嵌套调用

C语言的函数之间是相互平行的、独立的,不允许函数内部定义另一个函数;但可以函数内部调用一个函数,调用函数又调用另一个函数。也就是嵌套调用

例:输入4个整数,找出其中最大的数。用函数的嵌套调用处理

三. 函数的递归调用

调用一个函数的过程中又出现直接或间接地调用该函数本身,称为递归调用

/*有5个学生坐一起,第五个比第四个大2岁,第四个比第三个大2岁...最后第一个学生说他是10岁,请问第5个学生多大?
用递归方法就n*/

#include <stdio.h>
int main()
{
	int n,m,ret=0;
	printf("请输入您需要计算幂数:n");
	scanf("%d",&n);
	printf("请输入您需要计算的底数:n");
	scanf("%d",&m); 
    ret=power(n,m);
    printf("%d",ret);
	
	return 0;
}
  int power(n,m)
  {
  	int ret=0;
  	if(n==0)
  	    ret=1;
    else
    ret=power((n-1),m)*m;
     
	 return ret;
  	
  }

/*5!    fun(5)
5!=4!*5    fun(4)*5
4!=3!*4   fun(3)*4
3!-2!*3   fun(2)*3
2!=1!*2  fun(1)*2
1!=1   */
#include <stdio.h>
 int main()
 {
  int n,ret=0;
  printf("请输入需要计算的阶乘:  ");
  scanf("%d",&n);
  ret=fun(n);
  printf("%d!=%dn",n,ret);
  return 0;
 	
 }
 int fun(int i)
 {
 	int ret=0;
 	if(i==1)
 	  ret=1;
 	else
 	 ret=fun(i-1)*i;
 	 return ret;
 		
 }

/*有5个学生坐一起,第五个比第四个大2岁,第四个比第三个大2岁...最后第一个学生说他是10岁,请问第5个学生多大?
用递归方法就n*/
#include <stdio.h>
int sum(int n);
 int main()
 {
  int n,ret=0;
  printf("请问您是第几个学生:  ");
  scanf("%d",&n);
  ret=sum(n);
  printf("%d %d",n,ret);
  return 0;
 }
  int sum(int n)
 {
 	int ret=0;
 	if(n==1)
 	 ret=10;
  else
 	ret=sum(n-1)+2;
 	
 	 return ret;

  } 

最后

以上就是天真豆芽为你收集整理的函数的调用的全部内容,希望文章能够帮你解决函数的调用所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(76)

评论列表共有 0 条评论

立即
投稿
返回
顶部