• <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 弱水一瓢 閱讀(228) 評論(0)  編輯 收藏 引用 所屬分類: C++ Primer

            <2025年8月>
            272829303112
            3456789
            10111213141516
            17181920212223
            24252627282930
            31123456

            導航

            統計

            文章分類

            最新評論

            亚洲伊人久久综合影院| 伊人久久大香线蕉综合网站| 久久丫精品国产亚洲av不卡| 国产精品女同久久久久电影院 | 久久综合久久综合亚洲| 国产精品美女久久福利网站| 精品国产福利久久久| 波多野结衣久久一区二区 | 91久久精品视频| 久久精品国产精品亚洲精品| 久久婷婷综合中文字幕| 中文字幕无码精品亚洲资源网久久| 久久精品国产亚洲网站| 亚洲AV日韩AV永久无码久久| 久久综合视频网站| 91精品国产91久久久久久| 日韩AV无码久久一区二区 | 久久99精品综合国产首页| 久久久亚洲欧洲日产国码是AV | 伊人久久大香线蕉亚洲五月天| 国产精品激情综合久久| 久久久久国产精品| 韩国免费A级毛片久久| 久久婷婷色综合一区二区| 久久免费视频6| 久久精品中文字幕一区| 国产精品狼人久久久久影院| 久久综合九色综合精品| 久久免费精品视频| 久久精品成人免费网站| 久久久久久综合一区中文字幕| 国产精品久久久久aaaa| 国产69精品久久久久777| 久久国产乱子伦精品免费强| 久久99热狠狠色精品一区| 97久久超碰国产精品旧版| 久久久久久午夜成人影院| 久久A级毛片免费观看| 97久久久精品综合88久久| 91亚洲国产成人久久精品| 久久中文精品无码中文字幕|