<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

    局部變量,塊內的變量(函數為最大的塊)

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

    內存:

       代碼區      數據區

       棧為局部變量
       堆區為動態分配
       全局數據區,靜態數據區
       常量區,主要是字面量,內存為只讀的。

    函數的形參,可以給默認值

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

    fact(int n,int m = 1);

    但是不能跳躍傳遞參數,二義性!

    enum Sex{
      MALE,FEMALE
    }

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

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

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

    內聯函數,提高程序運行效率,調用函數時,不是調用,而是搬一份到調用處,不用進行真正函數調用,所以無開辟棧的開銷。

    會增加代碼的長度

    如果函數很復雜,不能成為內聯函數。不支持控制結果。

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

    比較  調用開銷 VS 執行開銷,來判斷是否使用內聯函數,對于很簡單的函數值得內聯。

    2.是否能成為內聯函數完全有編譯程序決定

    3.不支持控制結構。

    #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;    
    }

     

    遞歸函數

    一個函數自己調用自己,不管問題多復雜,只要把問題簡化為最簡單的形式。

    遞歸函數不可能是內聯函數

    效率,遞歸 < 循環 < 公式

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

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

    菲波那契數列,求對應位置的值

    頭文件

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

    函數定義文件,遞歸

    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;
    }


    主函數文件

    #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)  編輯  收藏 所屬分類: 達內學習總結
    主站蜘蛛池模板: 色www永久免费视频| 日韩免费毛片视频| 亚洲国产精品免费观看| 午夜寂寞在线一级观看免费| 人与动性xxxxx免费| 亚洲黄网在线观看| 最新69国产成人精品免费视频动漫| 国产精品免费观看视频| 亚洲精品第五页中文字幕| 国产一级淫片免费播放| 午夜视频免费在线观看| 亚洲AV无码一区二区三区网址 | 老司机午夜免费视频| 亚洲AV无码成人精品区蜜桃 | 亚洲成a人片在线观看日本| 久久电影网午夜鲁丝片免费| 一区二区三区在线免费观看视频| 亚洲精品视频免费在线观看| 亚洲免费一区二区| 在线v片免费观看视频| 成人国产精品免费视频| 亚洲国产成人精品无码区花野真一 | 99亚洲精品卡2卡三卡4卡2卡| 久久青青成人亚洲精品| 国产一级淫片a免费播放口之| 日韩在线播放全免费| 四虎影视无码永久免费| 日韩成人精品日本亚洲| 亚洲午夜一区二区电影院| 亚洲午夜福利717| 四虎永久精品免费观看| 无码av免费毛片一区二区| 国产在线国偷精品免费看| 亚洲欧美国产精品专区久久| 亚洲高清无在码在线无弹窗| 国产亚洲精久久久久久无码77777 国产亚洲精品成人AA片新蒲金 | 国产亚洲一区区二区在线 | 精品亚洲麻豆1区2区3区| 狠狠亚洲婷婷综合色香五月排名| 免费黄色一级毛片| 99热在线精品免费全部my|