• <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>

            C++ Primer 學習筆記一

            A       .基本類型要點:

            1.  結構體:c++在處理結構體時,是按照一般的變量進行處理的。結構體可以作為函數參數和返回值。作為函數參數時,也分傳值和傳引用的區別,而作為返回值時,返回的是結構體的一個拷貝。可以將一個結構賦給另外一個結構。

            2.  枚舉:   枚舉量是整型,可以被提升為Int類型,但是int不能自動轉換為枚舉類型; 還有沒有為枚舉定義操作符+; 如果Int值是有效的,可以通過強制類型轉換,把它賦給枚舉變量; 顯示設置枚舉值時,指定的值必須是整數; 枚舉的取值范圍為大于最大值得、最小的2的冪-1。例如enum bigstep{one=1,two=2,third=100}; 則bigstep的取值范圍為0~127。

            3.  int *p1,p2;將創建一個指針和一個常規的int變量。

            4.  c++在創建指針時,計算機將分配用來存儲地址的內存,但不會分配用來存儲指針所指向的數據的內存。

            5.  如果要將數字值作為地址來使用,應通過強制類型轉換將數字轉換為適當的地址類型。

            6.  c++中,值為0的指針為空指針。確保空指針不會指向有效的數據。

            7.  不要嘗試釋放已經釋放的內存塊,但是對空指針使用delete是安全的。所以盡量不要創建2個指向同一個內存塊的指針。

            8.  不能使用sizeof操作符來確定動態分配的數組包含的字節數!!!、

            9.  數組和指針的區別:1.數組名是指針,可以對指針進行+(-)操作,但是數組名不可以;  2.對數組應用sizeof得到的是數組的長度,而對指針應用得到的是指針的長度。

            10.  如果給cout提供一個指針,它將打印地址。但如果指針的類型為char *,則cout將顯示指向的字符串。如果要顯示字符串的地址,則必須將這種指針強制轉換為另外一種指針類型,如Int *。

            B       .循環和關系表達式:

            1.  遞增和遞減操作符在同一個值中使用多次時,因為每個編譯器很可能對于“使用后修改”和“修改后使用”的規則可能不同,因此可能導致在不同的編譯器下得到不同的結果。

            2.  c++規定,在使用遞增或者遞減時,確定一個完整表達式(它是這樣一個表達式,不是另一個更大表達式的子表達式),每個完整表達式完了,在下一個開始之前,都要評估一次。例如:while(guest++<10) printf("%d",guest); 其中的guest++<10是一個完整表達式,一次在第一次printf的之前,要評估一次,這樣打出來的guest已經加一; 再如,y=(4+x++)+(6+x++);,顯然整個句子才是一個完整表達式,c++只保證在執行下一條語句之前,x+2,但是沒有規定是在計算每個子表示式之后將x遞增還是在整個表達式計算完畢之后才將x的值遞增!這個時候跟編譯器有關,所以盡量避免使用這樣的句子。

            3.  *和++同時作用于指針時,取決于優先級。前綴指針和*的優先級同,從右到左結合。后綴比*(還有前綴)優先級高。

            4.  c++為類型建立別名的方式有兩種:1.預處理器 #define BYTE char  2.使用typedef  typedef char BYTE;  最好使用typedef.

            C       .分支語句和邏輯操作符:

            • switch(integer-expression){} 中的判斷表達式必須為一個結果為整數的表達式。因此switch不能處理浮點測試。都是整數時,如果選項超過2個,switch的效率比if else高。

            D       .函數

            1.  在c++中,void test();與void test(void)是等效的,意味著函數沒有參數。argument--實參 parameter--形參

            2.  在c++中,當且僅當用于函數參數時,int *arr和int arr[]的含義是相同的,它們都意味著arr是一個int指針。

            3.  int age=39;   const int *p=&age; 后邊的聲明表示p指向一個const int(這里為39),因此不能使用pt來修改這個值。即*p=31;這個語句是不合法的。我們能通過修改age=23;來改變age的值,但是這個時候*p仍然為39!!也就是const int *p一旦指定一個值后,*p的內容將不改變,即不能通過*p改變值。

            4.  將const的地址賦給常規指針是不可行的。后邊再詳細討論下const+指針的情況。

            5.  獲取函數的地址很簡單:只要使用函數名即可,不跟參數。聲明函數指針時應該指定函數的返回類型及函數的參數列表。例如一個函數的原型為 double pam(int); 則其對應的函數指針的聲明為:double (*pPam)(int); pPam就是函數pam的函數指針。則我們現在可以賦值 pf=pPam; 然后就可以使用這個函數指針來調用函數了。例如:double r=(*pPam)(5);或者double r=pPam(5);

            posted on 2008-03-11 13:52 弱水一瓢 閱讀(220) 評論(0)  編輯 收藏 引用 所屬分類: C++ Primer

            <2025年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            導航

            統計

            文章分類

            最新評論

            国产叼嘿久久精品久久| 久久久久亚洲AV成人网人人网站| 国产精品久久久久久久app| 久久人人青草97香蕉| 久久精品国产亚洲AV影院| 欧美牲交A欧牲交aⅴ久久 | 久久精品国产亚洲Aⅴ香蕉 | 久久中文字幕精品| 久久亚洲精品成人AV| 国产精品女同一区二区久久| 久久综合亚洲色一区二区三区| 99麻豆久久久国产精品免费| 思思久久99热免费精品6| 国内精品伊人久久久久AV影院| 久久99精品国产99久久6| 人妻无码中文久久久久专区| 久久亚洲AV无码西西人体| 久久精品国产精品亚洲毛片| 欧美久久亚洲精品| 狠狠色综合久久久久尤物| 久久精品夜夜夜夜夜久久| 久久毛片一区二区| 久久免费99精品国产自在现线 | 欧美综合天天夜夜久久| 亚洲色大成网站WWW久久九九| 久久精品一区二区三区中文字幕| 久久99免费视频| 成人久久综合网| 97久久久久人妻精品专区| 性欧美大战久久久久久久久| 婷婷久久综合| 久久久久99这里有精品10| 久久久久九国产精品| 精品国产综合区久久久久久 | 国产精品久久久久久久久鸭| 日产精品久久久一区二区| 伊人久久精品无码av一区| 欧美精品乱码99久久蜜桃| 久久人人爽人人爽人人片av麻烦| 亚洲人成无码www久久久| 午夜精品久久久久久久无码|