黑马程序员------C语言基础 函数

 ------Java培训、Android培训、iOS培训、.Net培训、期待与您交流! -------

函数

函数是复用的一种机制(官方)

函数就是一段代码的打包

     语法:

         返回值类型   函数名 ( 参数类型 参数名, 参数类型 参数名, ... ) {

            函数体, 就是打包的代码

        }

     

        在 C 语言中, 函数不允许定义在函数内部

  

func();    调用 func 函数, 就是执行名字为 func 函数中的代码

 void getSum1(int num1, int num2) {

    int res = num1 + num2;

    

    printf("%d + %d = %d\n", num1, num2, res);

}

 这个函数限制了输出结果的环境

 如果希望在别的地方也可以显示结果, 那么就需要函数得到计算的结果, 有专门的输入函数进行输出

int getSum(int num1, int num2) {

    int res = num1 + num2;

    

    return res;  // 利用 return 语句返回 res 的结果

}

#include <stdio.h>
int main(int argc, const char * argv[]) {
    
    int n = 111;
    int m = 222;
    int res = getSum(n, m);
    
    printf("%d\n", res);
    
    return 0;
}


2.返回值类型的说明

   1> 函数前面写的 int 表示函数执行完成以后会得到一个 int 类型的数据

      在函数中, 需要使用 "return 数据" 结束函数

 int func2() {

 

    // return 123;

    return 'a';

}

 在 return 后面写的东西, 是什么表示函数执行完成后会得到什么结果

 2> 函数前面写void 的表示没有返回值

void func1() {}
int main(int argc, const char * argv[]) {
    
    // int num = func1();
    // 错误, 函数前面写 void 表示函数执行完没有结果, 即没有返回值
    
     int num = func2();
    printf("%d\n", num);
    return 0;
}


 

3.函数的声明

    所谓的函数声明, 就是在函数调用以前将函数的格式写出开

     以便告诉编译器后面要执行该函数

     函数声明

   void printSum(int num1, int num2); // 函数头, 函数声明

  在标准 C 中, 常常使用下列步骤处理函数头

   >1 去掉所有的 参数 的名字

void printSum(int, int);

  > 2 在函数的前面加上 extern (略)

extern void printSum(int, int);

    extern 表示该函数不是在当前文件中定义的

    implicity 隐式的

    explicity 显式的

4 多文件开发

     在 C 语言开发中, 有一个规范

     一个 .c 文件是一类非常紧密关系的函数集

      一般使用功能性的名字作为文件名

       math.h   -> math.c

       stdio.h  -> stdio.c

       stdlib.h -> .stdlib.c

   #include

 1>尖括号表示从系统路径下进行寻找头文件 #include <>

  2>双引号表示从当前文件夹路径开始找文件, 如果找不到再到系统路径下寻找 #include "   "

5 函数的递归

递归, 所谓的函数递归就是指, 函数自己调用自己, 或间接调用自己

void func() {

  func(); // 自己调用自己

}

 

void func2();

// 间接的调用自己

void func1() {

    func2();

}

 

void func2() {

    func1();

}

 

  1>程序设计中递归结构常常使用在算法设计的初始阶段

    算法设计中常常利用相关递推关系设计递归结构

    而算法实施的时候, 常常又将递归转换成非递归结构, 以提高效率

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值