<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)  編輯  收藏 所屬分類: 達內學習總結
    主站蜘蛛池模板: 亚洲精品无码专区在线在线播放| 污视频在线观看免费| 无码中文在线二区免费| 久久久久亚洲AV无码专区首JN| 精品视频在线免费观看| 伊人亚洲综合青草青草久热| 一本久久A久久免费精品不卡| 四虎影视精品永久免费网站| 粉色视频免费入口| 亚洲福利视频一区二区| 又黄又大的激情视频在线观看免费视频社区在线 | 久草免费福利资源站| 久久精品国产69国产精品亚洲| 国产成人免费ā片在线观看老同学 | 久久免费视频一区| 亚洲国产精品乱码一区二区| 免费在线中文日本| 911精品国产亚洲日本美国韩国| 免费国产黄网站在线观看可以下载| 亚洲免费视频网站| 日韩免费a级毛片无码a∨| 亚洲欧美成人一区二区三区| 国产成人青青热久免费精品 | 福利免费在线观看| 亚洲一区二区电影| 午夜寂寞在线一级观看免费| 特黄aa级毛片免费视频播放| 亚洲色精品vr一区二区三区| 久久青草免费91观看| 国内精品久久久久影院亚洲| 亚洲国产精品综合久久网络| 男人都懂www深夜免费网站| 亚洲一区中文字幕在线观看| 亚洲国产成人久久一区久久| 久久久精品免费视频| 99久久免费国产香蕉麻豆| 亚洲国产精品成人综合色在线婷婷| 中文字幕无码成人免费视频| 国产亚洲美女精品久久久久| 亚洲av无码不卡一区二区三区| 国产va免费精品观看精品 |