• <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++在處理結構體時,是按照一般的變量進行處理的。結構體可以作為函數參數和返回值。作為函數參數時,也分傳值和傳引用的區(qū)別,而作為返回值時,返回的是結構體的一個拷貝。可以將一個結構賦給另外一個結構。

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

            3.  int *p1,p2;將創(chuàng)建一個指針和一個常規(guī)的int變量。

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

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

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

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

            8.  不能使用sizeof操作符來確定動態(tài)分配的數組包含的字節(jié)數!!!、

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

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

            B       .循環(huán)和關系表達式:

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

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

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

            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的地址賦給常規(guī)指針是不可行的。后邊再詳細討論下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

            導航

            統(tǒng)計

            文章分類

            最新評論

            久久免费精品视频| 国产成人久久精品二区三区| 99久久精品免费看国产免费| 国产精品久久久久乳精品爆| 亚洲精品视频久久久| 久久精品亚洲AV久久久无码| 久久精品国产亚洲AV无码偷窥| 99热精品久久只有精品| 久久亚洲中文字幕精品一区| 青青草原综合久久大伊人精品| 欧美激情精品久久久久久久| 久久这里只有精品18| 久久午夜无码鲁丝片午夜精品| 亚洲精品无码久久一线| 久久久久久噜噜精品免费直播| jizzjizz国产精品久久| 最新久久免费视频| 久久精品国产欧美日韩| 国产精品久久一区二区三区| 久久人人爽人人爽人人片AV东京热| 日本精品久久久中文字幕 | 久久久免费精品re6| 久久亚洲精品无码观看不卡| 久久99国产精品一区二区| 久久精品国产男包| 久久天天婷婷五月俺也去| 久久国产精品免费一区二区三区| 性欧美大战久久久久久久久| 亚洲欧美国产日韩综合久久| 成人精品一区二区久久久| 色噜噜狠狠先锋影音久久| 99久久国产综合精品麻豆| 久久久久久亚洲精品成人| 综合人妻久久一区二区精品| 精品无码久久久久国产动漫3d| 色天使久久综合网天天 | 色妞色综合久久夜夜| 久久SE精品一区二区| 久久国产AVJUST麻豆| 久久人人爽人人爽人人爽| 少妇人妻88久久中文字幕|