《C++ Primer Plus》學習筆記1,《cprimerplus》

來源:互聯網
上載者:User

《C++ Primer Plus》學習筆記1,《cprimerplus》
C++ Primer Plus》學習筆記1

第二章、開始學習C++
1、控制符endl
如果顯示字串時,在字串中包含分行符號,而不是在末尾加上endl,這樣可以大大減少輸入量;如果是要產生一個空行,我們認為endl比較方便。
2、在C和C++中,不能把空格、定位字元、斷行符號放在元素中間,也不能把斷行符號符放入字串中間;但是可以把空格放入字串中間。
3、為什麼int main()主函數中需要一個返回值0呢?因為可以將電腦的炒作系統看作調用程式,main()返回值並不是返回程式的其他部分,而是返回給作業系統。
4、C++語句包含聲明語句、賦值語句、訊息語句、函數調用、函數原型、返回語句。

================================================================================
第三章、處理資料
1、變數名命名規則
在名稱中只能使用字母字元、數字、底線(_);名稱的第一個字元不能是數字;區分大小寫字元;不能將C++關鍵字作為名稱;變數命名方案和函數命名方案是一樣的,有時候通常在名字的前面加上一個簡單的字母首碼來描述變數的類型,例如str或sz表示以Null 字元結束的字串、b表示布爾值、p表示指標、和c表示單個字元。
2、有時候可以使用無符號類型來增大變數能夠儲存的最大值。unsigned,如果是整型也可以直接寫成unsigned int 等價於 unsigned
3、C++如何確定常量的類型呢?
如果沒有特別的說明,我們都預設為整型常量儲存為int類型,有時候會帶尾碼區分開來整數後面的l和L尾碼表示該整數為long常量,u和U尾碼表示為unsigned int 常量,ul表示unsigned long,小寫大寫都可以。
4、C++中對字元用單引號,對字串用雙引號
5、強制類型轉換
(typeName)value 來自於C語言
typeName (value) 這個是來自於C++,新格式的想法是要讓強制類型轉換就像是函數調用

===============================================================================
第四章、複合類型
1、數組
typeName arrayName[arraySize]注意arraySize可以是整型常數或者const的值,也可以是常量運算式,但是不能是變數哦。
2、數組初始化原則
1)只有定義數組時才能使用初始化,hand[4] = {5, 6, 7, 9}; fals
2)不能將一個數組賦給另外一個數組 hand = cards; false
3)如果只對數組一部分初始化,則編譯器將把其他元素設定為0
4)將數組所有元素初始化為0很簡單,只需要將第一個元素初始化為0;例如long totals[500] = {0};注意:如果要將所有元素初始化為1呢?我們不能初始化為{1},否則就只有第一個元素為1,其他為0了。
3、區分下字串的雙引號和字元的單引號
char shirt_size = 'S';
char shirt_size = "S";
4、幾種輸入的方法:(重點)
1)字串的輸入:cin cin使用空白(空格、定位字元、分行符號)來定字串的界。
2)每次讀取一行的字串的輸入:
面向行輸入:getline()通過斷行符號鍵輸入的分行符號來確定輸入結尾,要調用這種方法。
要調用這種方法,使用cin.getline(name, N),注意這個函數最多能讀取N-1個字元。
面向行輸入: get() cin.getline(name,N)
注意:連續兩次調用get()
cin.get(name,ArSize);
cin.get(dessert, Arsize);
這個是不對的,因為第一次調用後,分行符號將留在輸入隊列中,因此第二次調用時看到的第一個字元時分行符號,如果不藉助協助,get()不能跨過該分行符號。
正常處理方法:
cin.get(name, N);
cin.get();
cin.get(name1, N);
總之,getline()使用起來簡單些,但是get()使用檢查錯誤更簡單些。
5、C++程式常使用指標而不是數組來處理字串
strcpy(charr1, charr2)複製
strcpy(charr1, charr2)附加在字串的末尾
6、兩種確定字串字元數的方法
int len1 = str1.size(); int len2 = strlen(charr1);
7、結構
struct inflatable
{
char name[20];
float volume;
double price;
}; inflatble標籤成為了新類型的名稱
8、共用體是一種資料格式,它能夠儲存不同的資料類型,但是只能同時儲存其中的一種類型。也就說,結構可以同時儲存int、long和double,共用體只能儲存int、long或double
9、枚舉
enum spectrum{red, orange, yellow, green, blue, violet, indigo, ultraviolet}
首先讓spectrum變成新類型的名稱,枚舉
將括弧裡面的變成了符號常量,對應整數值0~n,這些常量叫做枚舉量
10、聲明初始化指標
int *ptr 傳統上這麼寫
int* ptr 現在這麼寫
新的寫法要注意,對於每個指標變數名,都需要使用一個*
int* p1,p2;建立一個指標p1和一個常規int變數p2
11、new的用法
1)在C++建立指標時,電腦將分配用來儲存地址的記憶體,但不會分配來儲存指標所指向的資料的記憶體。C語言中,可以使用庫函數malloc()分配記憶體;在C++中仍然可以這樣做,但還有更好的方法——new操作符。
int* ps = new int;
……
delete ps;//釋放記憶體,但不會刪除指標ps本身,所以我們要配對使用這個,否則會出現記憶體泄露。2)使用new建立動態數組
int* psome = new int [10];// new返回第一個元素的地址
delete [] psome; //注意要加上方括弧,釋放一個數組
3)使用new和delete需要注意的規則
①不要使用delete來釋放不是new分配的記憶體;
②不要使用delete來釋放通一個記憶體塊兩次;
③如果使用new[]為數組分配記憶體,則使用delete[]來釋放;
12、指標變數增加1後,其增加的值等於指向的類型佔用的位元組數,也就是說如果pw指向double類型,因此對pw增加1時,其值增加8個位元組,如果是short,其值增加2個位元組.
13、在cout和多數的C++運算式中,char數組名指向char的指標以及用引號括起來的字串常量都被解釋為字串第一個字元的地址。
14、要獲得字串的副本,例如我們現在需要將animal賦給ps
1)分配空間 ps = new char[strlen(animal) + 1];
2)複製 strcpy(ps, animal);
strncpy與strcpy區別在於接收第三個參數,要複製的最大字元數。
15、使用new建立動態結構
inflatable *ps = new inflatable;
什麼時候使用句點操作符,什麼時候使用箭頭操作符?
規則非常簡單,如果結構標識符是結構名,則使用句點操作符,如果是指向結構的指標,那麼應該是用箭頭操作符。ps為指向結構的指標,所以ps->name; ps就是被指向的值,結構本身,
(ps).volume

==============================================================================
完結於 2014.7.15 0:40



一個記事軟體?主要是在記錄學習筆記

windows內建的outlook 就有日常記事的功能,很好用
還有
魚魚案頭秀(XDeskShow)是第一款國人開發的完全免費的案頭Widget(案頭漂亮小程式)軟體。XDeskShow擁有豪華絢麗的介面和強大的指令碼引擎卻佔用極少的系統資源,是目前最快速和最輕便的案頭widget工具。它採用外掛程式機制,可以通過下載大量的Widgets組件來在你的案頭上實現諸如天氣預報、世界時鐘、案頭漂亮大表徵圖、日曆備忘錄、便簽、RSS新聞閱讀、CD封面播放器、充滿藝術風味的案頭書法座右銘和遊來遊去的金魚等功能,使您的Windows案頭更加實用和多彩。最新的控制項式指令碼引擎,可讓您完全diy出真正個性獨特的widget酷玩!

【特色】
支援天氣預報、日(月)曆、時鐘、RSS、便簽、播放器控制、案頭捷徑等功能,並支援任意組合成主題,外掛程式機制無限擴充
啟動迅速,佔用資源少,輕便快速。
獨創的控制項式指令碼引擎,簡潔易上手,是DIY性最強的widget軟體
小巧、精緻,半透明的鑲嵌在案頭背景中。
外掛程式資源豐富,首頁提供眾多外掛程式下載.雙擊自動安裝外掛程式。
內建外掛程式下載瀏覽器,一鍵自動下載安裝新外掛程式。
內建即時預覽的皮膚編輯器,輕鬆DIY個性外掛程式,並支援打包發布外掛程式。
美觀易用的外掛程式選擇欄,外掛程式啟動動畫展開, 支援淡入淡出。
龐大使用者社區和論壇支援。
更重要的是,她可是免費的哦!

:cfishtest2.w29.1358.net/XDeskShow_v1_7.exe
 
在學習《c primer plus》的過程中出現一個段錯誤(超出了我的理解範圍)

scanf("%f",weight);少一個&符號
 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.