C primer學習筆記(一)

2021-05-27 13:25:03 字數 1011 閱讀 4764

從來沒有正式學習過c++,感覺很多基礎知識都不懂。。。

果斷買一本c++primer 開始學習。。。。

今天是開始看的第二天。先寫點發現的新東西吧。。

1.  std::endl是操縱符(manipulator),從c++primer的附錄中看,操縱符有好幾個,不過貌似都是控制std::cout的輸出格式的

2.wchat_t 居然是c++內建型別。。。。。其長度是char的兩倍

3.std::cerr和std::clog都是繫結到標準錯誤輸出的,區別是,std::cerr不緩衝,std::clog緩衝

4.將乙個超過範圍的值賦給unsigned變數時(比如將336賦給unsigned char),將會取該值對取值範圍取模(336%256=80)。但是如果是signed變數,則結果由編譯器決定!(坑爹呢~~)

5.左值可以出現在賦值語句左邊或右邊,右值只能出現在賦值語句右邊。即右值不能被賦值。  關於左值表示式:

6.非const引用只能繫結到和它同型別的物件。const引用則無此限定。可以繫結到字面值常量和不同但相關型別的物件(double d = 0.3; const int &r = d;)

7.q:為什麼標頭檔案中只能有宣告,不能有定義?(類定義,編譯時值已確定的const常量和inline函式例外)

a:因為標頭檔案可能被包含多次,而定義只能出現一次,所以只能宣告,不能定義!

q:那如果用標頭檔案保護符呢?(#ifndef __header__h__   ......)

a:標頭檔案保護符只能保證在乙個編譯單元(乙個.cc 原始檔作為乙個編譯單元生成.o)中不被重複包含。如果是不同的編譯單元則無效。所以當程式包含多個編譯單元時還是會有重複定義出現

q:那為什麼會有例外?

a:因為類定義和普通變數定義不一樣。普通變數定義會分配記憶體空間;而類定義只是告訴編譯器這個類的資料格式和例項化後占用多大空間!但是在同一編譯單元內還是不能重複定義類,不同編譯單元可以,這就是為什麼標頭檔案可以包含類的定義。

引用:8.關於在標頭檔案中定義const變數。。木有看懂  ╮(╯▽╰)╭!!!

學習C Primer筆記 一

1動態分配記憶體 動態物件的分配與釋放需要使用 new 和 delete memory leak 兩個表示式來完成。動態分配的記憶體的唯一的訪問方式是通過指標間接的訪問。1.1類成員的操作符的返回型別是void 型別。並且有乙個size t的型別的引數。class screen public voi...

C primer 學習筆記之一

c 中類模板可以定義static成員 每個類模板例項化時都會生成乙個static成員副本。如下 定義了類模板a並在a中宣告了static成員a 在類外定義了a 在主程式中定義了例項化了a和a兩個具體的類 includeusing namespace std template class a a 中的...

C Primer學習筆記

學習完乙個知識點後寫上自己的理解。算是總結吧,加深一下自己的印象,也可以在以後複習的時候方便檢視 加油加油!14.1關於運算子的過載 存在的意義 目前看來就是因為操作符大部分是針對資料的,比如int型,char型,書中稱為內建型別。而當類之間想要用操作符的時候,比如兩個類的物件相加,那麼就需要去重 ...