2019/12/19
1 裝上VS2013 或者2015;
2 閱讀第一章1-10頁;
3 瞭解C++的歷史
4 對比C/C++的區別和聯繫
5 把今天看的只是總結一遍,做好記錄
2019/12/20
1 學會使用C++主函數
2 學會C++中特殊的註釋,頭文件使用(會建立多文件結構),瞭解命名空間的含義
3 學會使用cout,cin這兩種輸出輸入的語法,及其輸出時的格式控制
4 瞭解類的概念
5 學會使用函數,詳細瞭解函數名,形式參數,返回值,函數體的含義。
1 機器語言->彙編語言->高級語言
2 爲什麼不實用機器語言?
可讀性差,編程繁瑣、困難
3 爲什麼不實用彙編語言作爲編程語言?
彙編語言只是用特定的機器,當換機器時,需要重新編程,因此不是用彙編語言
4 高級語言的執行過程
(1)基於高級語言完成程序編寫
(2)計算機等基於自己的編譯器,完成將高級語言翻譯爲彙編語言(適用於本機器的彙編語言)
(3)彙編語言翻譯爲機器語言,完成對計算機的控制
5 什麼是泛型編程,舉個通俗易懂的例子
答:泛型編程與面向對象編程的目標相同,即使重用代碼和抽象通用概念的技術更加簡單。但是面向對象編程強調編程的數據方面,泛型編程強調的是獨立於特定數據類型。側重點不同。下面舉一個泛型編程的實例:
對不同數據類型進行排序,通常我們需要爲每種類型創建排序函數,泛型編程需要對語言進行擴展,以便只編寫一個泛型函數(既不是特定類型的函數),並應用於各種實際類型。
6 什麼是可移植性
答:可移植性一般分爲兩種:軟件可移植性,硬件可移植性。 軟件可移植性是指代碼可以在不同平臺間移植,硬件移植性是指在不同硬件間(如不同構架的CPU)移植。
代碼可移植性相關:
1、用標準庫和基於標準庫的第三方庫;
2、用符合標準的編譯器;
3、使用標準的C、C++語法;
4、使用條件編譯處理操作系統層面上的差異
7 已經有C語言了爲什麼還要引入C++
答:C++是面向對象,面向對象就是進行一系列的封裝,比如說認識一個對象,這個對象包括一些行爲和屬性,我把他們封裝在一起。而C語言是面向過程,就是什麼事情都是一步一步逐步執行。
2019/12/21
對應書上第三章37-68頁(我指的是目錄上的頁數)
1 掌握C++變量的命名規則
2 瞭解不同變量類型的表示範圍,掌握機器位數與整形變量表示範圍大小的關係
3 學會輸出不同變量的極限值
一:數值類型
(1)short、int 和 long 類型都表示整型值。存儲空間的大小不同。一般, short 類型爲半個機器字長,int 類型爲一個機器字長,而 long 類型爲一個或兩個機器字長(在 32 位機器中 int 類型和 long 類型通常字長是同樣的)。
(2)常用常量的定義以及表示範圍:
類型 |
字節 |
範圍 |
備註 |
Int |
4 |
2^(-31) ~ 2^31-1 |
|
Unsigned int |
4 |
2^32-1 |
|
unsigned long |
4 |
2^32-1 |
|
Long |
4 |
2^(-31) ~ 2^31-1 |
|
Long long |
8 |
2^(-63)~2^63-1 |
|
Char |
1 |
|
|
Double |
8 |
-1.7*10(-308)~1.7*10(308) |
15位有效數字 |
float |
4 |
-3.4*10(-38)~3.4*10(38) |
6位有效數字 |
4 掌握什麼是字面值
答:字面值可以理解爲常量。如42,即爲字面值常量。
/* 枚舉常量 */
enum Month_t
{
JAN = 1, FEB, MAR, APR, MAY, JUN,
JUL, AUG, SEP, OCT, NOV, DEC
};
5 掌握常量的相關知識
6 學會使用常用的運算符,並瞭解其優先級
7 瞭解自動轉換的機制
問題6:
舉例:
2019/12/22
1 學會數組的創建和使用
2 學會C風格的字符串和C++風格的字符串(string重點)使用
答:1、 C-風格的字符串具有一種特殊的性質:以空字符結尾,空字符被寫作“\0”,其ASCII碼爲0.用來標記字符串的結尾。Tips:
2、string類位於名稱空間std中,使用時必須加頭文件string。1)、可以提供using編譯指令,2)、使用std::string來引用它。
3、string對象和字符數組之間的主要區別是,可以將string對象聲明爲簡單變量,而不是數組。
3 理解結構體的含義,學會結構體的創建和使用,瞭解結構體與公用體的區別和聯繫。掌握枚舉類型的建立和使用
答:1、結構是一種比數組更加靈活的數據格式,因爲同一個結構可以存儲多種類型的數據。
2:結構體的局部聲明和外部聲明:
3、共用體:
4、枚舉:
enum spectrum{red, orange, yellow ,green, blue, violet, indigo, ultraviolet};
這些“符號常量”對應的值分別是0~7,這些常量叫枚舉量。
具體查看目錄114頁。
4 指針是重點,要熟練應用
5 學會熟練應用動態存儲,並瞭解動態存儲內存分配準則,以及存儲位置
有兩種動態存儲分配方式:棧式(stack)、堆式(heap)。
6 熟練應用動態數組的創建和使用,分析其與vector變量的區別
答:使用new來創建動態數組:
int *psome = new int [10];
delete [ ]psome;
2、使用new創建動態結構:
3、模板類Vector類似於string類,也是一種動態數組。
數組是底層數據類型,存放在棧中,其內存的分配和釋放完全由系統自動完成,效率最高;
動態數組是程序員由new運算符創建的,存放在堆中,需由delete運算符人工釋放,否則會內存泄露;
vector,存放在堆中,由STL庫中程序負責內存的分配和釋放,使用方便。
7 瞭解動態、靜態和自動存儲的含義
接上一章:
1.自動存儲
在函數內部定義的常規變量使用自動存儲空間,被稱爲自動變量(automatic variable),這意味着它們在所屬的函數被調用時自動產生,在該函數結束時消亡
2.靜態存儲
靜態存儲是整個程序執行期間都存在的存儲方式。是變量稱爲靜態的方式有兩種:一種是在函數外面定義它;另一種是在聲明變量時使用關鍵字statis。
3.動態存儲
new和delete運算符提供了一種比自動變量和靜態變量更靈活的方法。它們管理了一個內存池,這在C++中被稱爲自由存儲空間(free store)或堆(heap)。
8變量的聲明和定義的區別
答:爲變量分配地址和存儲空間的稱爲定義,不分配地址的稱爲聲明。
一個變量可以在多個地方聲明,但是只能在一個地方定義。
加入extern修飾的是變量的聲明,說明此變量將在文件以外或在文件後面部分定義。
說明:很多時候一個變量,只是聲明不分配內存空間,直到具體使用時才初始化,分配內存空間,如外部變量。