第五章-c语言中的函数(下)

四、参数
  1. 理解:在很多情况下,函数和调用者之间需要数据交互,调用者需要给函数传递一些数据,交互

    的数据称为参数

  2. 形式参数

    (1) 形式参数:简称为形参,在函数定义时,约定调用者需要传递的数据类型及参数名
    (2) 语法:返回值类型 函数名(数据类型 参数名1,数据类型 参数名2,数据类型 参数名3){}
    (3) 使用:形参相当于函数内部的变量,在函数中直接通过参数名进行使用,但是不能出现命名冲突
    
  3. 实际参数

    (1) 实际参数:函数在调用时,给形参传递的数据,简称为实参
    (2) 实参作用:实参给形参赋值,实参的数据类型、个数、顺序和形参一致
    (3) 函数调用:函数名(实参1,实参2,实参3);
    
    #include<stdio.h>
    
    void main(){
    	printf("好好学习....\n");
    	printLine(20,'=');
    	printf("天天向上....\n"); 
    	printLine(30,'+');
    	printf("good good study....\n"); 	
    	printLine(40,'*');
    	printf("day day up...."); 
    } 
    
    void printLine(int a,char s){
    	int n;
    	for(n=1;n<=a;n++){
    		printf("%c",s);
    	} 
    	printf("\n");
    }
    
五、返回值
  1. 理解:函数和调用者之间的一种数据交互,通过调用函数获取的数据结果(函数 给 调用者数

    据结果)

  2. 函数返回值的语法:

    返回值类型 函数名(形参列表){
        // 函数体、函数的实现
    }
    
  3. 函数返回值的分类:

    (1) 返回值类型为 void,代表当前函数不需要返回值任何结果:
        void 函数名(形参列表){}
    
    (2) 返回值类型 为 具体的某种数据类型,代表函数需要返回结果:
        数据类型 函数名(形参列表){
            // 函数体
            return xxx;
        }
        注意:函数的返回值约定了函数和调用者之间交互的数据类型
    
  4. return的作用:

    (1) 将函数的结果返回值给调用者
    (2) 结束当前函数
    
    案例:
    int add(int a,int b){
    	return a+b;  // 返回值当前值,同时后面不能再定义其他内容
    } 
    
  5. 函数返回值的处理方式:

    (1) 第一种处理方式:函数的返回值可以不处理
        #include<stdio.h>
    	void main(){
    		add(6,9);//函数的调用,函数程序运行,返回值结果不予处理 
    	} 
    	// 函数
    	int add(int a,int b){
    		return a+b;
    	}      
    
    (2) 第二种处理方式:定义同类型的变量进行存储返回值
        #include<stdio.h>
        void main(){
            int r=add(6,9);
            printf("%d",r);
        } 
    
        int add(int a,int b){
            return a+b;
        }
    
    (3) 第三种处理方式:直接在使用的位置,调用函数
        #include<stdio.h>
        void main(){
            printf("%d",add(6,19));
        } 
    
        int add(int a,int b){
            return a+b;
        }
    
六、函数的嵌套调用与递归调用
  1. 函数的嵌套调用:一个被调用的函数,在它执行未结束之前又调用其他函数,这种调用关系可以嵌套多层,理论上嵌套层数不受限制。

    #include<stdio.h>
    
    void main(){
    	printf("%d",add(6,19));
    } 
    
    int add(int a,int b){
    	return a+ select(b);
    } 
    
    int select(int r){
    	if(r%2==0) return r/2;
    	else return (r-1)/2;
    }
    
  2. 函数的递归调用

    (1) 理解:一个函数在执行过程中调用自身
    (2) 注意:如果使用递归应用,必须注意设置递归调用出口,否则可能出现无穷递归
    
    (3) 递归思想
        a.递进:每一次推进,计算都比上一次变得简单,直至简单到无需继续推进,就能获得结果。也叫到达出口。
        b.回归:基于出口的结果,逐层向上回归,依次计算每一层的结果,直至回归到最顶层。
    
    案例:
    #include<stdio.h>
    
    void main(){
    	printf("%d",jieCheng(6));
    } 
    
    int jieCheng(int n){
    	if(n==1 || n==0) return 1;
    	return n*jieCheng(n-1);
    }
    
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值