day9函数传参、递归函数、预处理命令

一、函数传参:


1、值传递:
        实参将值传递给形参,形参是实参的副本,对形参做的操作,实参不会受影响

使用传参的情况:

        1.函数体内部想使用函数体外部变量值的时候可以使用值传递

        2.函数体内想修改函数体外部变量的时候不能使用值传递

2、全局变量传递:

3、整形数组的传递:

        1.形式1:
            int fun(int array[5]);
        2.形式2:
            int fun(int array[], int len);

        需要注意:
            1.形式1只能操作5个元素的数组,形式2可以操作不同类型长度的数组
            2.函数体内部的数组会随函数结束被回收,如果后续还想操作该数组必须在外部定义传到函数中
            3.数组传递中,形参操作和实参操作的是同一个数组

 4、字符型数组和字符串的传递
例如:char str[32] = {"hello world"};
           int fun(char str[]);   

二、递归函数 


1、函数定义时调用函数本身
        需要注意:
            1.递归一定要有结束条件
            2.避免深层次的递归

三、预处理命令

1、宏定义:
    #define:只是代码的替换

    1.不带参宏
        #define PI  3.1415926 
        #define M   50
    2.带参宏(宏函数)
        带参宏与函数的区别:
            1.函数有参数类型、返回值、传参的概念
            2.带参宏没有参数类型、返回值、传参的概念
            3.带参宏是在程序编译阶段加载到程序中 
                带参宏可能改变运算符的优先级,记得加括号
            4.函数是在程序运行阶段加载到程序中
            5.带参宏会使代码体积增大
            6.函数不会使代码体积增大    
            7.带参宏执行效率高
            8.函数执行效率低 

2、头文件包含
    #include <stdio.h>
    在预处理阶段将stdio.h头文件展开到文件中

    在/usr/include目录下查找stdio.h 

    #include "stdio.h"
    在当前目录下查找stdio.h,如果当前目录找不到则在系统目录/usr/include目录下查找头文件

    头文件以.h结尾:
        1.头文件中存放宏定义 
        2.头文件中存放声明的全局变量和全局函数
        3.头文件中存放自定义的数据类型 

    项目工程根据功能划分成不同的文件
        jisuanqi ------- main.c         主函数的实现
                    |--- add.h          add.c中用到的数据类型的定义、宏定义、全局变量的声明、全局函数的声明 
                    |--- add.c          加法相关的函数接口的实现
                    |--- sub.h          sub.c中用到的数据类型的定义、宏定义、全局变量的声明、全局函数的声明 
                    |--- sub.c          减法相关的函数接口的实现
                    |--- mul.h          mul.c中用到的数据类型的定义、宏定义、全局变量的声明、全局函数的声明 
                    |--- mul.c          乘法相关的函数接口的实现
                    |--- div.h          div.c中用到的数据类型的定义、宏定义、全局变量的声明、全局函数的声明 
                    |--- div.c          除法相关的函数接口的实现

    
    jisuanqi--------src ----- main.c         主函数的实现  
                |            |--- add.c          加法相关的函数接口的实现
                |            |--- sub.c          减法相关的函数接口的实现             
                |            |--- mul.c          乘法相关的函数接口的实现            
                |            |--- div.c          除法相关的函数接口的实现
                |
                |----include ---- add.h          add.c中用到的数据类型的定义、宏定义、全局变量的声明、全局函数的声明     
                            |--- sub.h          sub.c中用到的数据类型的定义、宏定义、全局变量的声明、全局函数的声明 
                            |--- mul.h          mul.c中用到的数据类型的定义、宏定义、全局变量的声明、全局函数的声明 
                            |--- div.h          div.c中用到的数据类型的定义、宏定义、全局变量的声明、全局函数的声明

  • 18
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值