[C++]C++的几种函数 Part3

    内联函数:
           内联函数和普通函数区别很小,但是内联函数的特点是编译器会在每二个调用该函数的地方展开一个函数的副本。
        使用内连函数可以减少函数调用带来的开销。不过内联函数尽量用于较小的函数,或者调用次数很少的函数。如果
        调用大的函数,反而可能会照成性能的损失。

#include <iostream>

inline int multiplication(int,int);//函数原型

int main(){
        int number1;
        int number2;
        std::cout<<"请输入相乘的两个数:";
        std::cin>>number1;
        std::cin>>number2;
        int c=multiplication(number1,number2);
        std::cout<<"积为:"<<c;

        return 0;
}
inline int multiplication(int a,int b)
{
        int c;   
        c=a*b;
        return c;
}

    上述代码中,只要在函数体前加上 inline 就可以设置为内联函数。
    
    递归:
       
所谓递归函数其实就是函数中,自己能够调用自己本身。比如拿阶乘这个问题来说
        非负整数n的阶乘表示为 n*(n-1)*(n-2)...*1

        其中当n为1或者0时,结果是1。假设n=5 那么可以写成5!=5*(4!)
           代码如下:

#include <iostream>
#include <iomanip>
using namespace std;

unsigned long factorial(unsigned long);

int main()
{
        int number;
        cout<<"请输入要求的阶乘(不带“!”):";
        cin>>number;
        cout<<setw(2)<<number<<"!="<<factorial(number)<<endl;
        return 0;

}
unsigned long factorial(unsigned long number)
{
        if (number<=1)
        {
                return 1;
        } 
        else
        {
                return number*factorial(number-1);//递归
        }
}
    如果想看详细过程可以在递归那一行加个断点看看过程。
菊子曰 今天你菊子曰了么?
posted @ 2011-04-28 12:48  逝去的小丑  阅读(133)  评论(0)    收藏  举报