C Primer問題總結 1

2021-10-02 22:07:51 字數 1423 閱讀 4916

1.包含來自標準庫的標頭檔案,應該用<>,對於不屬於標準庫的標頭檔案,比如自己建立的標頭檔案則使用" .h"。

2.成員函式(menber function)是定義為類的一部分的函式,有時也被稱為方法(method).

3.cerr:乙個ostream物件,關聯到標準錯誤,通常寫入到與標準輸出相同的裝置。預設情況下,寫到cerr的資料是不緩衝的。cerr通常用於輸出錯誤資訊或其他不屬於程式正常邏輯的輸出內容。

1.算數型別分為兩類:整型(integral type,包括字元和布林型別在內)和浮點型.char最小尺寸為8位,int 為16位.

2.初始化不是賦值,初始化的含義是建立變數時賦予其乙個初始值,而賦值的含義是把物件的當前值擦除,而以乙個新值來替代。

3.指標不能隱式進行型別轉換,這意味著等號左右必須是同一型別,所有指標的型別都要和它所指向的物件嚴格匹配,但是指向基類的指標可以指向派生類物件(這算是個例外吧)

4.如果兩個指標指向的位址相同,則它們相等。

5.(void )指標, void 是一種特殊的指標型別,可用於存放任意物件的位址。乙個void*指標存放著乙個位址。這一點與其他指標類似。不同的是,我們對該位址中到底存放乙個什麼型別的物件並不了解,因此不能直接操作void *指標所指向的物件,因為我們並不知道這個物件到底是什麼型別。

6.int* p1,p2 //p1是指向int型別的指標,p2是int型別

在這裡基本資料型別是int而不是int*

7.int i = 1024,*p = &i,&r = i;//可以定義的時候初始化不同型別的變數

8.指向指標的引用

int i =42;

int*p;

int*

&r = p;

//r是個對指標p的引用

int*q;

&q = p;

//q也是個引用

r =&i;

//實際是對p賦值,p指向i的位址

*r =

0;

9.const變數必須在定義的時候初始化.

10.constexpr變數

c++11新標準規定,允許將變數宣告為constexpr型別以便由編譯器來驗證變數的值是否是乙個常量表示式,宣告為constexpr的變數一定是乙個常量,而且必須用常量表示式初始化

11.decltype使用的是乙個不加括號的變數,則得到的結果就是該變數的型別。如果給變數加上一層或者多層括號,編譯器就會把它當成是乙個表示式。變數是一種可以作為賦值語句左值的特殊表示式,所以這樣的decltype就會得到引用型別。

decltype

((i)

) d;

//乙個i型別引用

decltype

(i) e;

//乙個與i相同的型別

C Primer問題總結 3

1.bool型別不應該參與計算 比如 bool b true bool b2 b 這個時候b2仍然為true,這是因為bool型別在參與運算的時候,編譯器會自動將其提公升為int型別,true為1 b為 1.仍然非零,所以b2仍然非非零,所以轉換成布林值後b2的值為真。2.定義的時候給等號 表示初始...

C primer知識要點總結 1

型別的概念 定義了資料元素的內容,還定義了這類資料上可以操作的運算。endl的作用 endl是操作符的特殊值。寫入endl的效果是結束當前行,並將於裝置關聯的緩衝區的中內容刷到裝置中。緩衝重新整理操作可以保證目前為止程式所產生的的所有輸出都真正寫入輸出流中,而不是僅停留在記憶體中等待寫入流。練習1....

C Primer學習總結 1 開始 續

1.4控制流 1.4.1 while語句 while語句反覆執行一段 直至給定條件為假為止。includeint main std sum of 1 to 10 inclusive is while condition statement 條件 condition 是乙個產生真或假的結果的表示式。只...