<rt id="bn8ez"></rt>
<label id="bn8ez"></label>

  • <span id="bn8ez"></span>

    <label id="bn8ez"><meter id="bn8ez"></meter></label>

    隨筆-159  評論-114  文章-7  trackbacks-0

    局部變量,塊內(nèi)的變量(函數(shù)為最大的塊)

    全局變量在所有函數(shù)之外(函數(shù)都可用)

    內(nèi)存:

       代碼區(qū)      數(shù)據(jù)區(qū)

       棧為局部變量
       堆區(qū)為動態(tài)分配
       全局數(shù)據(jù)區(qū),靜態(tài)數(shù)據(jù)區(qū)
       常量區(qū),主要是字面量,內(nèi)存為只讀的。

    函數(shù)的形參,可以給默認值

    可以為形參指定默認值(從右向左),調(diào)用時可以不用傳遞參數(shù)。

    fact(int n,int m = 1);

    但是不能跳躍傳遞參數(shù),二義性!

    enum Sex{
      MALE,FEMALE
    }

    void disp(char* name, Sex gender = MALE);

    函數(shù)聲明中指定了默認值,不能在定義時,再指定默認值,但可以追加默認值。

    fact(int , int  =1);  這樣聲明沒問題。

    內(nèi)聯(lián)函數(shù),提高程序運行效率,調(diào)用函數(shù)時,不是調(diào)用,而是搬一份到調(diào)用處,不用進行真正函數(shù)調(diào)用,所以無開辟棧的開銷。

    會增加代碼的長度

    如果函數(shù)很復(fù)雜,不能成為內(nèi)聯(lián)函數(shù)。不支持控制結(jié)果。

    規(guī)定1,必須先定義,不支持函數(shù)原形。
    因為搬函數(shù)代碼時,是在編譯過程中進行的。

    比較  調(diào)用開銷 VS 執(zhí)行開銷,來判斷是否使用內(nèi)聯(lián)函數(shù),對于很簡單的函數(shù)值得內(nèi)聯(lián)。

    2.是否能成為內(nèi)聯(lián)函數(shù)完全有編譯程序決定

    3.不支持控制結(jié)構(gòu)。

    #include <iostream>
    using namespace std;
    inline 
    int isnumber(char ch)
    {
           
    return ((ch >= '0' && ch <='9')? 1:0);       
    }
     

    int main()
    {
        
    char in
        
    while(true)
            cout 
    << "please input a char:(input q to exit) >";
            
    in = cin.get();
            
    if(isnumber(in))
            
    {
                  cout 
    << "you input is num " << in - '0' << endl;                 
            }

            
    else
            
    {
                  
    if(in == 'q')
                        
    break
                  cout 
    << "you input is not num " << endl;     
            }
     
            cin.ignore(
    100,'\n'); 
        }
     
        cout 
    << "please input any key to exit" << endl; 
        cin.
    get(); 
        cin.
    get(); 
        
    return 0;    
    }

     

    遞歸函數(shù)

    一個函數(shù)自己調(diào)用自己,不管問題多復(fù)雜,只要把問題簡化為最簡單的形式。

    遞歸函數(shù)不可能是內(nèi)聯(lián)函數(shù)

    效率,遞歸 < 循環(huán) < 公式

    任何遞歸都可以改為非遞歸,需要用到棧,代碼就很看懂了。改后,不一定提高效率。因為遞歸本身就是去開辟棧完成的。為何不保留代碼可讀性呢。

    唯一條件,遞歸必須存在一個必須滿足的條件,以結(jié)束推出。

    菲波那契數(shù)列,求對應(yīng)位置的值

    頭文件

    #ifndef FIB_H
    #define FIB_H 
    double fib( int );
    double fi( int );
    #endif

    函數(shù)定義文件,遞歸

    double fib( int n )
    {
        
    if( n<1 )
            
    return 0;
        
    if( n<3 )
            
    return 1;
        
    return fib( n-1 ) + fib( n-2 );
    }


    double fi( int n )
    {
        
    if( n<1 )
            
    return 0;
        
    if( n<3 )
            
    return 1;
        
    double d,d1,d2;
        d1
    =1;
        d2
    =1;
        
    forint i=3;i<=n;i++ ){
            d
    =d1+d2;
            d1
    =d2;
            d2
    =d;
        }

        
    return d;
    }


    主函數(shù)文件

    #include <iostream>
    using namespace std;
    #include 
    "fib.h"

    int main()
    {
        cout
    <<"please input item no.:";
        
    int n;
        cin
    >>n;
        cout
    <<"item "<<n<<" is "<<fi(n)<<endl;
        
    return 0;
    }





    posted on 2006-02-04 23:35 北國狼人的BloG 閱讀(530) 評論(0)  編輯  收藏 所屬分類: 達內(nèi)學(xué)習總結(jié)
    主站蜘蛛池模板: 韩国免费a级作爱片无码| 亚洲精品亚洲人成在线播放| 免费人成动漫在线播放r18| 久久久久免费看黄A片APP| 亚洲妇女熟BBW| 在线成人a毛片免费播放| 亚洲午夜无码久久| 女人18一级毛片免费观看| 亚洲av乱码一区二区三区按摩| 四虎免费在线观看| 国产精品亚洲专区无码牛牛 | 国产亚洲精品美女| 四虎永久成人免费| 一级毛片免费不卡直观看| 亚洲乱码精品久久久久..| 久久99热精品免费观看动漫| 亚洲美女自拍视频| 最近免费中文字幕4| 国产亚洲情侣久久精品| 国内精品99亚洲免费高清| 久久福利青草精品资源站免费| 亚洲AV无码专区国产乱码电影| 麻豆69堂免费视频| 亚洲精品网站在线观看不卡无广告| www免费插插视频| 亚洲天天做日日做天天看| 日韩精品成人无码专区免费| 在线观看亚洲电影| 国产V亚洲V天堂A无码| 成年人免费的视频| 最好2018中文免费视频| 麻豆国产精品免费视频| 桃子视频在线观看高清免费完整| 免费毛片网站在线观看| 好猛好深好爽好硬免费视频| 亚洲一区二区三区影院| free哆啪啪免费永久| 国产精品区免费视频| 精品国产免费观看久久久| 涩涩色中文综合亚洲| 亚洲午夜精品第一区二区8050|