我的隨行筆記2 C++ Primer Plus

qwer1030274531發表於2020-08-26

  1.宣告陣列: short months[12]; 訪問其元素:month[0]~month[11]

  2.初始化陣列:(1)int yam[3]={20, 3, 5}; // 列表初始化可省略等號,也可{}不包含資料,元素均初始化為0

  (2)int xam[3]; xam[0]=20; xam[1]=3; xam[2]=5;

  xam[3]={20,3,5};//錯,不允許 xam=yam; //錯,不允許將一個陣列賦給另一個陣列

  long ph[]={25, 92, 3.0}; //錯,列表初始化禁止縮窄轉化,浮點double 轉化為長整型 long 為縮窄轉化

  3. (1)c=sizeof yam; //結果是整個陣列的位元組數 c=12;

  (2)c=sizeof yam[0]; //結果是元素的位元組數 c=4;

  (3) sizeof yam/sizeof yam[0] 可以用於計算陣列元素個數

  4. C++標準模板庫(STL)提供了陣列替代品——vector ,C++11新增模板類array.

  5. 在確定儲存字串所需的最短陣列時,別忘了將結尾的空字元計算在內。

  6. 'S’是一個字元常量, “S”表示兩個字元S和\0組成的字串。 “S”實際上表示字串所在的記憶體地址。

  7. 陣列初始化字串常量: char name1[15]=“C++OwBody”;

  sizeof (name1)=15 ; // 整個陣列長度

  strlen(name1)=9; // 儲存在陣列中的字串長度,只計算可見字元,不計算空字元和結束字元\0;

  4. 面向行的輸入:一般在輸入名字變數時應使用面向下一行輸入,讀取多個單詞

  (1) cin.getline(name,20);//name:陣列名,20:字元數可以讀取一行中不超過字元數的多個單詞, Enter生成換行符,並將換行符替換為空字元(1) cin.getline(name,20);//name:陣列名,20:字元數可以讀取一行中不超過字元數的多個單詞, Enter生成換行符,並將換行符替換為空字元

  (2)cin.get(name,20) ; cin.get(desetr,20) ; //會讀到行尾並保留換行符到輸入佇列中連續2次呼叫get(),在第二呼叫看到的第一個字元時換行符,認為以達到行尾,無法繼續讀取

  正確呼叫方法:cin.get(name,20).get();

  5. 空行或其他問題,用以下命令恢復輸入: cin.clear();

  6. string 物件宣告為簡單變數,而不是陣列,程式可自動處理string 的大小。利用string,加入標頭檔案 #include

  7. (1)char charr1[20]; char charr2[20]=“jagura” ;

  charr1=charr2; //此句陣列賦值語句不合法

  strcpy(charr1,charr2); //將charr2複製到charr1

  strcat (charr1,charr2); //將charr2附加到charr1末尾,

  int len=strlen(charr1); //確定字串中字元數 strlen()是函式

  (2)string str1; string str2=“pather”; str1=str2; //最後一句合法

  string str3; str3=str1+str2; str2+=str1; //合法

  int len=str1.size();//確定字串中字元數 str1是一個string類 的物件,size()是string類的一個方法。

  6. char charr[20]; cout<

  string str; cout<

  7. 將下一行輸入讀取到陣列中的程式碼: cin.getline(charr1,20); //這句表明cin是istream類的物件,getline()是istream類的方法

  將下一行輸入讀取到string物件中的程式碼:getline(cin.str); //這句表明getline()不是類方法,在istrea類中有處理double,int

  //等其他基本型別的類方法,但沒有處理string物件的類方法

  cin>>str; //合法,應用了istream類的一個成員函式cin>>x

  10. 結構宣告初始化:#include

  struct inflatable{ char name[20], float volume, double price};

  struct inflatable{ std::string name, float volume, double price}; //結構可以將string類作為成員,但要指明訪問的名稱空間

  inflatable duck={“Daphe”, 0.12, 9.98};

  inflatable Bobu; Bobu=duck; //結構賦值是有效的

  struct peak{ int number, char car[20]} Ala, bay; // Ala, bay是結構peak的兩個結構變數。

  初始化結構陣列: inflatable guest [2]={ {“Daphe”, 0.12, 9.98}, {“Bobu”, 0.34, 6.34} };

  11. 共用體:可以儲存不同資料型別,但具體某一時刻只能儲存一種型別。

  12. 列舉: enum spectrum { red, orange, yellow, green, blue, violet, indigo, ultraviolet }; //符號常量,對應的整數值為0~7

  spectrum band; //band只能從列舉spectrum定義的8個常量裡選擇值

  設定列舉量的值:指定的值必須為整數

  enum bits{,two=2, four=4, eight=8 };

  enum bitstep{ first, second=100, third }; //first預設為0,後面未初始化的列舉量比前面大1,third =101

  enum {zero, null=0, one, nuero=1}; //可以建立多個相同值的列舉量

  列舉的取值範圍: bits myflag; myflag=bits(126); //合法,上限為最大值的2的冪-1,2^8-1=127


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

相關文章