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

来源:互联网 发布:泛雅网络平台登录 编辑:程序博客网 时间:2024/05/13 03:34

 ------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>程序设计中递归结构常常使用在算法设计的初始阶段

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

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

 

0 0
原创粉丝点击