<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)  編輯  收藏 所屬分類: 達內學習總結
    主站蜘蛛池模板: 四虎影视大全免费入口| 亚洲中文字幕无码久久| 国产免费黄色大片| 91制片厂制作传媒免费版樱花| 黄色a级片免费看| 亚洲精品欧美综合四区| 91嫩草私人成人亚洲影院| 国产亚洲自拍一区| 免费亚洲视频在线观看| 大香人蕉免费视频75| 国产成人免费高清激情明星| 精品国产麻豆免费人成网站| 一级黄色免费网站| 性色av极品无码专区亚洲| 亚洲影视自拍揄拍愉拍| 亚洲图片中文字幕| 91在线亚洲精品专区| 久久久久亚洲精品影视| 亚洲国产精品无码成人片久久| 亚洲日韩人妻第一页| 免费观看亚洲人成网站| 欧洲精品免费一区二区三区| 免费国产黄线在线观看| 免费中文熟妇在线影片| 黄页免费的网站勿入免费直接进入| 精品一区二区三区无码免费视频| 久久精品免费观看国产| 青柠影视在线观看免费高清| 成人免费ā片在线观看| 久久一区二区免费播放| 国产又黄又爽又大的免费视频| 狠狠躁狠狠爱免费视频无码| 无忧传媒视频免费观看入口| 四虎影视在线看免费观看| 又硬又粗又长又爽免费看| aaa毛片视频免费观看| a级片免费观看视频| 中文字幕免费不卡二区| 久久国产乱子伦免费精品| 久久WWW免费人成一看片| 一个人免费高清在线观看|