zoukankan      html  css  js  c++  java
  • 函数

    1.为什么要用函数

    每个 C++ 程序都至少有一个函数,即主函数 main() ,如果程序的代码不多,可以直接写在主函数里面,如果程序比较复杂,需要重复使用一个功能,为了在后面维护程序方便,保证程序的简洁性,高度封装性,就需要使用函数,有时需要定义类,将多个相同性质的函数放在一个类中。

    2.为什么要用函数重载

    两个以上的函数,具有相同的函数名,但是形参的个数或者类型不同,编译器根据实参和形参的类型及个数的最佳匹配,自动确定调用哪一个函数,这就是函数的重载。

    当你的参数类型或者参数个数不同,又不想写多个函数,这时候就可以用重载函数啦。对于程序的可读性有很大的好处。

    3.什么是值传递

    值传递就是字面意思,只传递值。比如说下面这行代码:

    void swap(int a,int b)
    {
        int temp;
        temp=a;
        a=b;
        b=temp;
    }
    

    的运行结果是:
    a=a;
    b=b;
    举个例子,我复印一张文件给你,你拿到的复制品可以随便修改,但是不会改变我原来文件。这里的值传递中的形参就相当于实参的复制品,不会对实参有影响。

    4.什么是地址传递

    地址传递可以这么理解,就是直接把原件给你啦。

    void swap(int *a,int *b)
    {
        int temp;
        temp=*a;
        *a=*b;
        *b=temp;
    }
    

    这个函数的输出结果是:
    a=b;
    b=a;

    5.编写递归函数

    函数可以直接或间接地调用自身,称为递归调用。

    在函数内部,可以调用其他函数。如果一个函数在内部调用自身本身,这个函数就是递归函数。
    举个例子,我们来计算阶乘n! = 1 x 2 x 3 x ... x n,用函数fact(n)表示,可以看出:
    fact(n) = n! = 1 x 2 x 3 x ... x (n-1) x n = (n-1)! x n = fact(n-1) x n
    所以,fact(n)可以表示为n x fact(n-1),只有n=1时需要特殊处理。
    于是,fact(n)用递归的方式写出来就是:

    int fact(n){
        if( n==1)
            return 1;
        return n * fact(n - 1);
        }
    
  • 相关阅读:
    模块(相当于Java里的包)
    if_else_while_for
    用户交互
    Python入门
    BigInteger类及方法应用
    selenium+java破解极验滑动验证码的示例代码
    Postman 使用详解
    Postman用法简介
    伟大架构师的秘密【转载】
    深入理解HTTP协议(转)
  • 原文地址:https://www.cnblogs.com/simple5960/p/11504803.html
Copyright © 2011-2022 走看看