函数知识点总结

来源:互联网 发布:淘宝不属于广告商品 编辑:程序博客网 时间:2024/04/30 13:59

函数的基本概念:

定义函数首先要有三个确定:

1:确定函数名称。(根据函数的功能确定)

   定义名称的规范:有26个字母 下划线 数字组成,但是不能以数字开头

2:确定函数的形参列表(形参类型 形参名称)

   形参个数和是否需要形参是根据用户需要来定义的

3:确定返回值类型,根据函数执行完是否需要返回值给函数调用者来确定

int getMax(int v1, int v2)

{

int max = v1 > v2 ? v1 : v2;

return max;

}


int main()

{

int a = 10;

int b = 20;

int c = getMax(a,b);

printf("c = %d\n",c);

return 0;

}


函数的注意点:

1:返回值类型必须和return后面的类型相同

2:return单独存在的时候,后面不可以写任何语句,因为执行不到

3:函数可以没有返回值,当return后面没有任何返回值的时候,返回值类型就写void,代表着没有返回值

   当函数没有返回值的时候,函数后面的return可以省略不写

4:c语言中函数可以不写返回值类型,但是如果没有写返回值类型,系统会默认返回值类型为int

   同时,写了返回值类型也可以没有返回值

5:函数不能嵌套定义

6:函数不能重复定义



函数的声明和实现

只要在使用之前告诉编译器函数的三要素就可以

声明函数的目的,是告诉编译器函数的名称形参以及返回值

int getMin(int v1, int v2);

 函数的声明可以省略形参名称

int getMin(int, int);

 函数的声明可以相同

int getMin(int, int);


函数中的递归算法

递归的含义就是函数自身抵用自身

能用循环实现的功能基本上都能用递归实现

缺点:性能差

注意:递归一定要有一个明确的结束条件,否则就会造成死循环

void getNumber()

{

    printf("abc\n");

    getNumber();

}

上边的函数的递归就是一个死循环,切记一定要有一个明确的结束条件



#include <stdio.h>

int myPow2(int base, int n);

int main(int argc, const char * argv[])

{    

    int result = myPow2(2, 3);

    printf("result = %d\n", result);

    return 0;

}

  

int myPow2(int base, int n)

{

    if (n <= 0) {

        return 1;

    }

    

   return myPow2(base, n - 1) * base;

}





0 0