- 前置++和後置++
- 區別: i++的實現原理是現將i自增1,然後返回i的引用,++i是先定義一個i的副本,最後返回之前定義的副本的值
- 前置更快
- 並非是從左到右。在C++中沒有規定大多數二元運算的兩個對象的計算順序(除了&&、|| 和 ,),也沒有規定函數參數和被調函數的計算順序。C/C++ 語言的規定告訴我們,任何依賴於特定計算順序、依賴於在順序點之間實現修改效果的表達式,其結果都沒有保證。
- printf和scanf
- printf
- 格式[標誌][輸出最少寬度][.精度][長度]類型
- 其中,轉換說明符表示的是類型,較生疏的有
- %c字符
- %f 注意報考float和double
- %e(E) 科學計數法
- %g(G) 浮點數不顯示無意義的0
- %i 同%d
- %u 無符號十進制
- %o 八進制
- %x 十六進制
- %p 指針
- %s 字符串
- 標誌
- - 左對齊
- + 右對齊
- # 對非十進制加前綴,比如o,ox
- 精度控制
- 注意一下m.n的問題
- 這裏n是小數點後的位數
- m是輸出的總長度,但是可以這麼理解,如果m比本身的數據長度要小的話,m沒什麼用
- printf
- C++中的const
- 常對象,必須初始化,初始值可以是任意複雜的表達式
- 默認狀態下,const對象僅在文件內有效
- 因爲編譯器會在編譯的過程中用常量替換變量名,可能會出現不同文件給相同const 對象名給了不同的初值。
- 如果像在多個文件共享const對象,那麼必須在變量的定義和聲明之前都添加上extern關鍵字。
- 常數據成員
- const可用於函數重載
- 修飾類成員函數
- 我們儘量按照要求將所有的不需要改變對象內容的函數都作爲 const 成員函數。
- 可以使用 mutable 關鍵字修飾這個成員,mutable 的意思也是易變的,容易改變的意思,被 mutable 關鍵字修飾的成員可以處於不斷變化中,如下面的例子。
- const 關鍵字不能與 static 關鍵字同時使用,因爲 static 關鍵字修飾靜態成員函數,靜態成員函數不含有 this 指針,即不能實例化,const 成員函數必須具體到某一實例。
- 常對象,必須初始化,初始值可以是任意複雜的表達式
- C++ 內存分佈
- 1.棧區: 由編譯器自動分配釋放,像局部變量,函數參數,都是在棧區。會隨着作用域退出而釋放空間。
- 3.堆區:程序員分配並釋放的區域,像malloc(c),new(c++)
- 3.全局數據區(靜態區):
- BSS
- 未初始化的全局變量和靜態變量
- 數據段
- 初始化的全局變量,屬於靜態內存分配
- BSS
- 4.代碼區
用子彈筆記學C++(1)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.