C++基礎(第一、第二、第三章)

 

 

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修飾的是變量的聲明,說明此變量將在文件以外或在文件後面部分定義。

說明:很多時候一個變量,只是聲明不分配內存空間,直到具體使用時才初始化,分配內存空間,如外部變量。

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發佈了214 篇原創文章 · 獲贊 33 · 訪問量 13萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章