c 學習筆記和思考

2022-03-17 18:51:31 字數 1337 閱讀 6281

1、內建型別:int float等程式語言自己定義的型別

類型別:自己宣告的類,即是對物件的抽象

2、const double *cp 表示cp是指向乙個const型別double型別資料的指標,而非是const指標  

類中形參函表後面的const反應在類中宣告成員函式的形式

3、typedef string *pstring;

const pstring cstr; //該宣告是把cstr定義為指向string型別物件的const指標,其中const 修飾的是pstring 。等價於 string *const cstr;

const指標可以放在型別前也可以放在型別後 string const s1;  const string s2;

4、嚴格地說,c++沒有多維陣列,通常所知的多維陣列就是陣列的陣列

5、switch結構,只能在它的最後乙個case標號或default標號後面定義變數 是為了避免出現**跳過變數的定義和初始化的情況。在這種情況下,如果需要為某個特殊的case定義變數,可以引入塊語句。因為變數會在塊結束前一直存在。

6、*dest++=*source++;等價於:

*dest=*source;

++dest;++source;

7、非引用新參表示對應實參的區域性副本,說白了也就是變數作用域的問題  指標可以修改對應的值

與所有引用一樣,引用形參直接關聯到其所繫結的物件,而並非這些物件的副本

引用:作為函式引數和返回函式左值

8、引用型引數應該在能被定義為const的情況下,盡量定義為const    宣告引用時,必須同時對其進行初始化

9、類的所有成員都必須在類定義的花括號裡面宣告,此後,就不能再為增加任何成員。類的成員函式既可以在類的定義內也可以在類的定義外定義。編譯器隱式地將在類內定義的成員函式當做內聯函式。類的成員函式可以訪問該類的private成員

10、有多個初始化時不能使用複製初始化,合成的預設建構函式不會自動初始化內建型別的成員

11、形參與const形參的等價性僅適用與非引用形參,const的形參主要用於指標和引用引數   臨時物件都是const型

12、引用總結: const  型別識別符號 &變數名()

引用型別引數應該在能被定義為const的情況下,盡量定義為const

引用返回函式值:

型別識別符號 &函式名(形參列表及型別說明)

用引用返回函式值最大的好處是在記憶體中不產生被返回值的副本

引用作為返回值,遵守的規則:

(1)不能返回區域性變數的引用(2)不能返回函式內部new分配的記憶體的引用(3)可以返回類成員的引用,但最好是const(4)引用與一些操作符的過載

13、類成員函式後加const   是為不改變資料成員

學習和思考

領悟 遇見問題,先思考,別動不動就去別人哪兒找答案。執行.configure 我也跟著敲.configure。完全沒有想 是什麼意思!是個人主目錄 是指當前目錄。linux所有操作都是對應指定目錄的,比如執行 configure 那你的當前目錄就得有configure這個檔案才行。我就一直執行不出來...

C 和C 的思考

從2011年從業至今已經寫了7年c 了,而c go語言雖然早有涉獵,但直到最近才開始思考語言的發展和工程之間的關係。c 更容易寫出高內聚 使用指標做原地記憶體操作 直接堆疊控制,減少記憶體分配,提高利用率 呼叫原生作業系統api,利用os特性 使用模板元程式設計製作介面統一演算法庫 引用計數的智慧型...

ARM學習筆記 思考 20140810

一 cpsr的中斷禁止位 中斷禁止位包括i f,用來禁止或允許irq和fiq兩類中斷,當i 1時,表示禁止irq中斷,i 0時,表示允許irq中斷 當f 1時,表示禁止fiq中斷,f 0時,表示允許fiq中斷。思考 是否可以利用禁用中斷位達到反除錯的目的?摘自 組合語言程式設計 基於arm體系結構 ...