C++ Primer Plus隨記1

qwer1030274531發表於2020-08-26

  1.(1)include ; using namespace std; //使所有的名稱都可簡化使用,不用加字首std , 輸出變數時: cout<< endl

  (2)include "iostream.h", 輸出變數時:std::cout<< std::endl; (1)和(2)的寫法都正確

  或者只使所需的名稱可用 using std::cout ;

  讓需要的函式訪問過名稱空間 std;多個函式有訪問時, using namespace std; 放在多個函式之前

  不用using編譯指令時,用std::hex,此時hex可以做變數名。使用using namespace std;時,不能將hex用作變數名。

  2.過載:將根據不同的輸入選擇相應的函式。

  3.物件導向程式設計(Object Oriented Programming:OOP)

  4:有些函式將值傳送給螢幕時,返回值型別為void,不屬於呼叫函式。

  5.cin是istream類的物件,cout是ostream類的物件,這兩類均在iostream檔案中定義。為ostream定義了插入運算子(<<)

  6.1byte=8bit; (在ASCII和EBCDIC字符集中) 1KB=1024byte; 1MB=1024KB;

  C++中位元組在ASCII和EBCDIC字符集中表示8bit,在Unicode中表示16位或32位。C++位元組表示至少能容納實現基本字符集的相鄰位組成。

  C++中的int寬度是靈活可變的,可以是16、24、32或64位. sizeof返回型別{sizeof (int) }或變數的長度sizeof a;

  7.int 是有符號型別;unsigned int =unsigned無符號型別

  short:(有符號型別):重置點為-32768 | 32767, -32768 -1= 132767 ;132767+1=-32768

  unsigned short(無符號型別):重置點為0, 65535+1=0; 0-1=65535;

  8.定義(宣告)變數時,應對其進行初始化。否則該變數的值可能是相應記憶體單元之前儲存的值,有很多不確定。

  初始化方式:int eums{7} ; int phys={12}; int rocs{} ;//將rocs初始化為0。 (這種方式也可用於陣列或結構的初始化)

  9.cout以八進位制和十六進位制顯示資料:cout<

  10. char ch; cin>>ch; //輸入5按回車,將5對應的ASCII編碼53儲存到ch變數中

  int n; cin>>n; //輸入5按回車,將5儲存到n變數中

  11.cout.put()是一種顯示字元的方法。類ostream包含一個成員函式put(),透過類ostream的物件cout來呼叫成員函式。

  12.顯示數字時,換行最好用endl; 顯示字串時,換行在字串末尾加\n ;

  基於字元的八進位制和十六進位制編碼使用跳脫字元。'\032' (八進位制 ) '\x1a' (十六進位制) 均表示ASCII碼為26的^Z.

  13.Unicode提供各種字符集的解決方案(拉丁字元、阿拉伯語,象形文字......),ASCII是Unicode的子集。 ISO 10646也是在國際程式設計環境中。

  14.C++11中新增的型別:char16_t , char32_t 分別用字首u 和U表示。

  15. 字面true和false可以轉化為int型別。 int ans=false; //ans=0

  任何數字值和指標值都可以被隱式轉化為bool值。 bool st=-100; //st=1

  16.限定符 const :處理符號常量 ,形式為 : const int Month=12;

  const 比 define 好:(1)它能明確指定型別;(2)可用於更復雜的型別(陣列、結構等);(3)可用C++作用域規則將定義限定在特定的函式或檔案中

  17. 2.4E+8屬於double型別,浮點常量預設情況下為double; 1.23e20F表示float型別 ,1.34L表示long double型別

  通常float為32位,doble 64位,long double 80、96或128位,3種型別的指數範圍至少為-37到37.

  對於float , C++只保證6位有效位。如

  float ac = 2.31E+22f;

  float b = ac + 1.0f;

  cout << b - ac << endl; //輸出結果為0,b加1是在小數點後的第23位加,但float只能表示數字的前6位或前7位。

  18.ostream方法setf() : cout:setf(ios_base::fixed, ios_base::floatfield) 使輸出定點表示,更好的瞭解精度。

  19.int guess(3.982); cout<

  int det=7.2E12; cout<

  20.int x=66;

  char c4={x}; //不合法,這種方式不能初始化c4, 對編譯器x是一個變數,不會跟蹤以下過程:x被初始化到它被用來初始化c4.

  x=31325; char c5=x ; //合法

  const int y=66; char c3 {y} ; //合法

  21. 表示式中的轉換, 整型提升(P64)

  強制型別轉換:

  (long) a;

  long (a);

  static_cast (a);

  22. auto關鍵字:在初始化宣告中,如果用auto,而不指定變數型別,編譯器將變數的型別設定為與初始值相同。

  auto x=1.5 ; // x為double型 auto n=100 ; // n為int型

  在處理複雜型別時,如標準模組庫(STL)中的型別時,自動型別auto推斷的有時才能顯示出來。

  23.C++確保short至少為16位,int至少和short一樣長,long至少為32位,且至少和int一樣長,確切長度取決於實現。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/30239065/viewspace-2714742/,如需轉載,請註明出處,否則將追究法律責任。

相關文章