• <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  
              愛過知情重醉過知酒濃   花開花謝終是空   緣份不停留像春風來又走   女人如花花似夢
            公告
            日歷
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567
            統計
            • 隨筆 - 8
            • 文章 - 91
            • 評論 - 16
            • 引用 - 0

            導航

            常用鏈接

            留言簿(4)

            隨筆分類(4)

            隨筆檔案(8)

            文章分類(77)

            文章檔案(91)

            相冊

            搜索

            •  

            最新評論

            閱讀排行榜

            評論排行榜

             

            1.extern "C"的作用
            因為C語言和 C++ 語言的編譯規則不一樣,所以要告訴系統哪些函數是用  C  方式編譯,哪些函數需要用  C++  方式編譯。 
            如果你不加  extern  "C"  ,在編譯時,系統會提示找不到此函數。

            extern  "C"表示編譯生成的內部符號名使用C約定 
            例如: 
            int  Fun(int  i,int  j) 
            C:_Fun 
            C++:_Fun_int_int 
            具體生成什么可能與編譯器有關 
            由于C++支持重載,而重載是在編譯期確定的,所以C++必須在內部符號名上區分各重載函數,所以就將參數類型加在函數名后。

            2. C++引用與指針的比較


              下面程序中,n是m的一個引用(reference),m是被引用物(referent)。
             int m;
             int &n = m;
            n相當于m的別名(綽號),對n的任何操作就是對m的操作。
            所以n既不是m的拷貝,也不是指向m的指針,其實n就是m它自己。 

            引用的規則:
            (1)引用被創建的同時必須被初始化(指針則可以在任何時候被初始化)。
            (2)不能有NULL引用,引用必須與合法的存儲單元關聯(指針則可以是NULL)。
            (3)一旦引用被初始化,就不能改變引用的關系(指針則可以隨時改變所指的對象)。
             
            以下示例程序中,k被初始化為i的引用。
            語句k = j并不能將k修改成為j的引用,只是把k的值改變成為6。
            由于k是i的引用,所以i的值也變成了6。
             int i = 5;
             int j = 6;
             int &k = i;
             k = j; // k和i的值都變成了6;

            3. struct和class的區別

            1)C++中的struct只是為了和C兼容而做的一個默認為public的class。
            2)struct默認訪問權限為pulbic; class默認訪問權限為private
            3)在繼承下 struct默認pulbic繼承; class默認訪問private繼承;
            C++中 ,結構和類只是其默認權限不同,除此之外沒有差別。

            4.堆和棧的區別

            一個由c/C++編譯的程序占用的內存分為以下幾個部分
            1、棧區(stack)—   由編譯器自動分配釋放 ,存放函數的參數值,局部變量的值等。其操作方式類似于數據結構中的棧。
            2、堆區(heap) —   一般由程序員分配釋放, 若程序員不釋放,程序結束時可能由OS回收 。注意它與數據結構中的堆是兩回事,分配方式倒是類似于鏈表,呵呵。
            3、全局區(靜態區)(static)—,全局變量和靜態變量的存儲是放在一塊的,初始化的全局變量和靜態變量在一塊區域, 未初始化的全局變量和未初始化的靜態變量在相鄰的另一塊區域。 - 程序結束后有系統釋放
            4、文字常量區  —常量字符串就是放在這里的。 程序結束后由系統釋放
            5、程序代碼區—存放函數體的二進制代碼。
            二、例子程序
            這是一個前輩寫的,非常詳細
            //main.cpp
            int a = 0; 全局初始化區
            char *p1; 全局未初始化區
            main()
            {
            int b; 棧
            char s[] = "abc"; 棧
            char *p2; 棧
            char *p3 = "123456"; 123456\0在常量區,p3在棧上。
            static int c =0; 全局(靜態)初始化區
            p1 = (char *)malloc(10);
            p2 = (char *)malloc(20);
            分配得來得10和20字節的區域就在堆區。
            strcpy(p1, "123456"); 123456\0放在常量區,編譯器可能會將它與p3所指向的"123456"優化成一個地方。

            5.Debug 和 Release 編譯方式的本質區別

                   Debug 通常稱為調試版本,它包含調試信息,并且不作任何優化,便于程序員調試程序。

                   Release 稱為發布版本,它往往是進行了各種優化,使得程序在代碼大小和運行速度上都是最優的,以便用戶很好地使用。

            6.sizeof用法總結

            A. 參數為數據類型或者為一般變量。例如sizeof(int),sizeof(long)等等。這種情況要注意的是不同系統系統或者不同編譯器得到的結果可能是不同的。例如int類型在16位系統中占2個字節,在32位系統中占4個字節。

            B. 參數為數組或指針。下面舉例說明.
            int a[50]; //sizeof(a)=4*50=200; 求數組所占的空間大小
            int *a=new int[50];// sizeof(a)=4; a為一個指針,sizeof(a)是求指針
            //的大小,在32位系統中,當然是占4個字節。

            C. 參數為結構或類。Sizeof應用在類和結構的處理情況是相同的。但有兩點需要注意,第一、結構或者類中的靜態成員不對結構或者類的大小產生影響,因為靜態變量的存儲位置與結構或者類的實例地址無關。 第二、沒有成員變量的結構或類的大小為1,因為必須保證結構或類的每一 個實例在內存中都有唯一的地址。
            下面舉例說明,

            Class Test{int a;static double c};//sizeof(Test)=4.
            Test *s;//sizeof(s)=4,s為一個指針。
            Class test1{ };//sizeof(test1)=1;

            D. 參數為其他。下面舉例說明。
            int func(char s[5]);
            {
            //數的參數在傳遞的時候系統處理為一個指針,所
            //以sizeof(s)實際上為求指針的大小。
            }

            sizeof(func(“1234”))=4//因為func的返回類型為int,所以相當于
            //求sizeof(int).

            posted on 2006-02-24 22:54 笑笑生 閱讀(131) 評論(0)  編輯 收藏 引用 所屬分類: C++語言
             
            Copyright © 笑笑生 Powered by: 博客園 模板提供:滬江博客
            四虎影视久久久免费观看| 久久精品亚洲精品国产欧美| 精品久久久中文字幕人妻| 国产精品久久久久久久久软件| 欧美一级久久久久久久大片| 欧美精品乱码99久久蜜桃| 久久精品国产精品亚洲毛片| 激情久久久久久久久久| 久久精品国产99久久久古代| 99久久精品国产高清一区二区 | 伊人久久五月天| 97久久超碰国产精品2021| 色综合久久中文字幕综合网| 精品国产99久久久久久麻豆| 精品久久综合1区2区3区激情| 色偷偷偷久久伊人大杳蕉| 国产精品免费久久| 麻豆亚洲AV永久无码精品久久 | 国内精品伊人久久久久777| 7777久久亚洲中文字幕| 欧美精品乱码99久久蜜桃| 久久99久久无码毛片一区二区| 久久婷婷五月综合97色一本一本 | 91久久香蕉国产熟女线看| 伊人久久综合无码成人网| 婷婷久久综合九色综合绿巨人| 久久精品亚洲一区二区三区浴池| 一本久久综合亚洲鲁鲁五月天| 亚洲狠狠综合久久| 久久国产精品-国产精品| 久久久一本精品99久久精品66| 久久无码AV中文出轨人妻| 久久天天躁狠狠躁夜夜2020| 久久精品亚洲欧美日韩久久| 亚洲国产天堂久久综合网站| 免费精品99久久国产综合精品| 久久99精品久久久久久hb无码| 久久成人国产精品免费软件| 久久精品无码一区二区WWW| 久久国产AVJUST麻豆| 亚洲AV无一区二区三区久久|