<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 閱讀(524) 評論(0)  編輯  收藏 所屬分類: 達內學習總結
    主站蜘蛛池模板: 免费人成视频在线观看视频| 亚洲heyzo专区无码综合| 亚洲Av无码国产情品久久| 99久久久精品免费观看国产| a级毛片在线免费| 美女裸免费观看网站| 亚洲永久在线观看| 久久精品国产精品亚洲毛片| 免费女人18毛片a级毛片视频| 男男AV纯肉无码免费播放无码 | 91九色精品国产免费| 成全动漫视频在线观看免费高清版下载 | 国产成人精品日本亚洲| 亚洲A∨精品一区二区三区| 成年轻人网站色免费看| 国产一卡二卡四卡免费| 在线免费观看你懂的| 午夜不卡久久精品无码免费| 中文在线观看永久免费| 国产大片免费天天看| 一区二区三区AV高清免费波多| 亚洲a无码综合a国产av中文| 亚洲熟妇无码av另类vr影视| 亚洲国产精品综合久久20| 精品日韩99亚洲的在线发布| 亚洲国产亚洲综合在线尤物| 亚洲天堂中文资源| 亚洲人成网址在线观看| 亚洲av无码成人黄网站在线观看 | 人体大胆做受免费视频| 永久免费观看黄网站| 暖暖免费中文在线日本| 特色特黄a毛片高清免费观看| 免费亚洲视频在线观看| 国产成人亚洲精品电影| 有色视频在线观看免费高清在线直播| 国产亚洲视频在线观看网址 | 亚洲性在线看高清h片| 自拍偷自拍亚洲精品被多人伦好爽| 亚洲乱码日产精品a级毛片久久| 亚洲一级特黄大片在线观看|