• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Impossible is nothing  
              愛過(guò)知情重醉過(guò)知酒濃   花開花謝終是空   緣份不停留像春風(fēng)來(lái)又走   女人如花花似夢(mèng)
            公告
            日歷
            <2025年6月>
            25262728293031
            1234567
            891011121314
            15161718192021
            22232425262728
            293012345
            統(tǒng)計(jì)
            • 隨筆 - 8
            • 文章 - 91
            • 評(píng)論 - 16
            • 引用 - 0

            導(dǎo)航

            常用鏈接

            留言簿(4)

            隨筆分類(4)

            隨筆檔案(8)

            文章分類(77)

            文章檔案(91)

            相冊(cè)

            搜索

            •  

            最新評(píng)論

            閱讀排行榜

            評(píng)論排行榜

             

            1、存儲(chǔ)類

            4個(gè)存儲(chǔ)類說(shuō)明符:auto、register、extern、static。標(biāo)識(shí)符的存儲(chǔ)類說(shuō)明符可以確定其存儲(chǔ)類、范圍和連接。

            分兩類:

            自動(dòng)存儲(chǔ)類——auto和register。

            只有變量能作為自動(dòng)存儲(chǔ)類,函數(shù)的局部變量和參數(shù)通常都是自動(dòng)存儲(chǔ)類。局部變量默認(rèn)為自動(dòng)存儲(chǔ)類。

            靜態(tài)存儲(chǔ)類——extern和static。

            這兩個(gè)關(guān)鍵字用來(lái)聲明靜態(tài)存儲(chǔ)類變量和函數(shù)的標(biāo)識(shí)符。這種變量從程序開始執(zhí)行時(shí)就存在。對(duì)于變量,程序開始執(zhí)行時(shí)就分配和初始化存儲(chǔ)空間;對(duì)于函數(shù),從程序開始執(zhí)行時(shí)就存在函數(shù)名。

            全局變量和函數(shù)名默認(rèn)為extern。用static聲明的局部變量仍然只在定義該變量的函數(shù)中使用,但與自動(dòng)存儲(chǔ)類變量不同的是,static局 部變量在函數(shù)退出時(shí)保持其數(shù)值。下次調(diào)用這個(gè)函數(shù)時(shí),static局部變量包含上次函數(shù)退出時(shí)的值。注:所有靜態(tài)存儲(chǔ)類的數(shù)字變量都默認(rèn)初始化為0。

            全局變量能夠被同一個(gè)文件中該變量聲明后的所有函數(shù)訪問(wèn)。其他文件中的函數(shù)也可以訪問(wèn)全局變量,但必須在使用前予以聲明,如在一個(gè)文件中定義:

            int flag;

            則在另一個(gè)文件中需定義如下:

            extern int flag;

            才可使用全局變量flag。

            說(shuō)明:存儲(chǔ)類別說(shuō)明符extern告訴編譯器:變量flag或者稍后定義在同一個(gè)文件中,或者在另一個(gè)文件中定義。而編譯器不知道flag定義在何 處,因此讓連接程序查找flag,如果沒(méi)有找到flag的定義,則發(fā)出錯(cuò)誤消息,如找到,則指明其位置,從而解決對(duì)該變量的引用。對(duì)于函數(shù)的引用也是如 此??梢杂胹tatic關(guān)鍵字來(lái)防止定義在其他文件中的函數(shù)(沒(méi)有在同一個(gè)文件中定義)使用這些全局變量或函數(shù)。

            2、enum的聲明

            enum Status(CONTINUE,WON,LOST);

            Status gameStatus;

            默認(rèn)枚舉常量(CONTINUE,WON,LOST)從0開始,增量為1。

            enum Months(JAN=1,F(xiàn)EB,MAR,APR,MAY,JUN,JUL,AUG,SEP,OCT,NOV,DEC);

            也可指定從某個(gè)常數(shù)開始,如上例從1開始,增量為1。

            3、默認(rèn)參數(shù)

            必須是函數(shù)參數(shù)表中最右邊的參數(shù)。

            int fun1(int,int=1,int=2); //正確

            int fun2(int=1,int); //錯(cuò)誤

            默認(rèn)參數(shù)應(yīng)在函數(shù)名第一次出現(xiàn)是指定,通常在函數(shù)原型中。

            4、一元作用域運(yùn)算符 :: 可以在同名局部變量的作用域中訪問(wèn)全局變量。

            5、函數(shù)重載

            通過(guò)函數(shù)簽名(函數(shù)名和參數(shù)類型的組合,包括參數(shù)個(gè)數(shù),類型,順序)來(lái)區(qū)別。編譯器用參數(shù)個(gè)數(shù)和類型為每個(gè)重載函數(shù)編碼(名字改編或名字修飾)。

            6、數(shù)組

            如果初始化的元素比數(shù)組中的元素少,則其余元素自動(dòng)初始化為0。所以至少需要初始化第一個(gè)元素,才能將其余元素自動(dòng)初始化為0。但是,如果聲明為static數(shù)組,則在沒(méi)有顯式初始化時(shí),便以其將自動(dòng)初始化為0。

            數(shù)組維數(shù)只能用常量聲明,無(wú)論是靜態(tài)數(shù)組還是自動(dòng)數(shù)組。

            字符數(shù)組可以用字符串直接量(注:字符串直接量返回指向第一個(gè)字符的指針)初始化。

            char string1[ ]= " first " ;

            字符串 " first " 包含五個(gè)字符加一個(gè)特殊字符串終止符 ' \0 ' 。故string1的長(zhǎng)度為6。

            將數(shù)組傳遞給函數(shù):

            原型:

            void modifyArray(int[ ] , int );

            void modigyArray(int anyArrayName[ ], int anyVariableName);

            C++編譯器將忽略原型中的變量名,上述兩種原型聲明等價(jià)。

            7、指針

            int a;

            int *aPtr = &a ;

            則&*aPtr和*&aPtr將返回相同的值,即為aPtr的值,可知&和*運(yùn)算符是互逆的。

            聲明為const的指針應(yīng)在聲明時(shí)初始化(如果是函數(shù)參數(shù),則用傳入函數(shù)的指針初始化)。

            結(jié)構(gòu)(類)總是按值調(diào)用,傳遞整個(gè)結(jié)構(gòu)(類)的副本。

            數(shù)組總是按引用調(diào)用,數(shù)組名就是數(shù)組第一個(gè)元素的地址。

            sizeof運(yùn)算符作用于數(shù)組名時(shí),返回?cái)?shù)組總共占用的字節(jié)數(shù)。

            double realArray[22];

            sizeof realArray /sizeof(double); //返回22

            char* suit[4]={" Hearts ", " Diamonds ", " Clubs ", " spades "};

            suit中的數(shù)組元素存放每個(gè)字符串的首字母的地址,因此suit是定長(zhǎng)的。

            所以sizeof suit將返回16(如果單個(gè)地址占用4字節(jié))。

            8、函數(shù)指針

            函數(shù)指針包含函數(shù)在內(nèi)存中的地址。

            將函數(shù)指針傳給函數(shù):

            原型:

            void bubble( int[ ], const int, int ( * ) ( int, int ) );

            上述第三個(gè)參數(shù)即為函數(shù)指針類型。

            看函數(shù)定義:

            void bubble( int work[ ], const int size, int ( * compare ) ( int, int ) )

            {

                ( * compare) ( a, b); //a,b為兩個(gè)int型的參數(shù)

            或者

                compare( a, b); //a,b為兩個(gè)int型的參數(shù)

            }

            推薦使用第一種形式,因它顯示說(shuō)明compare為函數(shù)指針,第二種形式容易認(rèn)為compare是個(gè)實(shí)際函數(shù)。

            函數(shù)指針數(shù)組聲明如下:

            void ( * f[ 3 ] )( int )={function1,function2,function3};

            上式聲明具3個(gè)函數(shù)指針的數(shù)組f。

            函數(shù)調(diào)用如下:

            (* f[0])(a);  //a為int型參數(shù)

            9、構(gòu)造函數(shù)與析構(gòu)函數(shù)

            一般情況下,析構(gòu)函數(shù)的調(diào)用順序與構(gòu)造函數(shù)相反。

            全局范圍中定義的對(duì)象的構(gòu)造函數(shù)在文件中的任何其他函數(shù)(包括main)執(zhí)行之前調(diào)用(但不同文件之間全局對(duì)象構(gòu)造函數(shù)的執(zhí)行順序是不確定的)。當(dāng)main終止或者調(diào)用exit函數(shù)時(shí)調(diào)用相應(yīng)的析構(gòu)函數(shù)。

            當(dāng)程序執(zhí)行到對(duì)象定義時(shí),調(diào)用自動(dòng)局部對(duì)象的構(gòu)造函數(shù)。該對(duì)象的析構(gòu)函數(shù)在對(duì)象離開范圍時(shí)調(diào)用(即離開定義對(duì)象的塊時(shí))。自動(dòng)對(duì)象的構(gòu)造函數(shù)和析構(gòu)函數(shù)在每次對(duì)象進(jìn)入和離開范圍時(shí)調(diào)用。

            static局部對(duì)象的構(gòu)造函數(shù)旨在程序執(zhí)行首次到達(dá)對(duì)象定義時(shí)調(diào)用一次,對(duì)應(yīng)的析構(gòu)函數(shù)在main終止或調(diào)用exit函數(shù)時(shí)調(diào)用。

            可見構(gòu)造函數(shù)調(diào)用順序:

            全局對(duì)象-〉局部自動(dòng)(或靜態(tài))對(duì)象(按執(zhí)行順序)。

            析構(gòu)函數(shù)調(diào)用順序:

            局部自動(dòng)對(duì)象-〉main( )執(zhí)行結(jié)束后,靜態(tài)對(duì)象(局部或全局)-〉全局對(duì)象。

            10、關(guān)于成員函數(shù)返回引用

            不要讓類的public成員函數(shù)返回對(duì)該類private數(shù)據(jù)成員的非const引用(或指針),返回這種引用會(huì)破壞封裝。

            如:

            #include<iostream>
            using namespace std;

            class Time
            {
            public:
             int getHour();
             int &badSetHour(int);
            private:
             int hour;
             int minute;
             int second;
            };

            int Time::getHour()
            {
             return hour;
            }

            int &Time::badSetHour(int hh)
            {
             hour=(hh >= 0 && hh < 24 ) ? hh : 0;
             return hour;
            }

            int main()
            {
             Time t;
             int &hourRef=t.badSetHour(20);
             cout<<hourRef<<endl;

             hourRef=8;
             cout<<t.getHour()<<endl;
             
             t.badSetHour(12) = 5;
             cout<<t.getHour()<<endl;
             
             return 0;
            }

            輸出為:

            20

            8

            5

            posted on 2006-02-22 21:37 笑笑生 閱讀(171) 評(píng)論(0)  編輯 收藏 引用 所屬分類: C++語(yǔ)言
             
            Copyright © 笑笑生 Powered by: 博客園 模板提供:滬江博客
            亚洲精品国产美女久久久| 国产精品禁18久久久夂久| 久久久久久夜精品精品免费啦| 青青草国产97免久久费观看| 国产91久久综合| 2020最新久久久视精品爱| 久久被窝电影亚洲爽爽爽| 久久久久四虎国产精品| 一本久久久久久久| 国产高潮国产高潮久久久91 | 久久精品视频91| 99久久精品国产毛片| 99久久亚洲综合精品成人| 久久国产影院| 久久99精品国产麻豆宅宅| 日韩人妻无码精品久久免费一| 久久精品毛片免费观看| 久久精品一区二区| 久久精品国产99久久香蕉| 久久无码中文字幕东京热| 热re99久久精品国99热| 国内精品伊人久久久久av一坑| 久久久久久狠狠丁香| 色综合久久久久综合99| 一本一本久久A久久综合精品| 大伊人青草狠狠久久| 久久艹国产| 久久久精品国产sm调教网站| 国产日韩久久久精品影院首页| 久久人人爽人人爽人人av东京热| 国产精品对白刺激久久久| 日韩久久无码免费毛片软件| 久久精品www人人爽人人| 天天影视色香欲综合久久| 久久精品国产亚洲AV电影| 久久99精品久久久久久齐齐| 亚洲国产精品无码久久| 久久久久99精品成人片牛牛影视 | 久久久久久久97| 久久夜色tv网站| 亚洲va久久久噜噜噜久久天堂|