文章目錄
第1講:C++語言概述
1.1 計算機系統組成及計算機指令
- 計算機系統組成:
- 馮諾依曼結構:
- 指令:
- 程序:計算機程序是指完成一定功能的指令的有序集合。編程即編寫計算機程序,作者可爲人或計算機。
- 軟件:軟件是指程序、程序運行所需的數據以及開發、使用和維護這些程序所需的文檔的集合。
1.2 程序設計語言的發展
- 程序設計語言是用來編寫計算機程序的工具,其發展里程大致可分爲機器語言(一條語句即一條指令)、彙編語言(助記符)和高級語言(接近人類自然語言和數學式子),但只有機器語言編寫的程序才能被計算機直接執行,其他語言的程序要執行必須翻譯成機器語言程序。
- 1972年C語言誕生,1979年C++被開發設計。
- C++是C的超集,增加了面向對象機制。
- 【概念】C++字符集、C++關鍵字(保留字)、C++標識符。
- 【舉例】:
#include <iostream>
using namespace std; // 使用標準命名空間
int main(){ // 主函數
cout << "hello,world" << endl; // 輸出流
return 0; // 主函數正常結束返回0給操作系統
}
- 本賈尼說:C++的目標是——在保證效率與C語言相當的情況下,加強程序的組織性,保證同樣功能的程序,C++更短小。
第2講:信息的表示與存儲
2.1 進位計數制及轉換
- 【二進制】:信息寫入計算機前均須轉換爲二進制形式,因爲二進制數:物理上易實現;運算簡單通用性強;便於表示並進行邏輯運算。
- 【進位計數制特點】:採用進位的方式計數(如十進制的逢十進一);採用位置表示法(如十進制的個位、十位)。
- 【計算機系統常用數字進制】:二進制、八進制、十進制、十六進制。
- 【進制轉換】:乘r取整,除r取餘。
2.2 數據在計算機中的表示:數值型與非數值型
- 【原碼】:試考慮-1+1的原碼運算結果。
- 【反碼】:試考慮-1+1的原碼運算結果(正負零)。
- 【補碼】:試考慮-1+1的原碼運算結果(消去了正負零並存的情況)。
- 浮點數的表示:規格化後表示,計算機存儲浮點數的位數組成爲
- 【ASCII碼】:ALT+ASCII碼值可代替字符鍵入
第3講:程序中數據的表示
3.1 數據類型
- C++數據類型
- 【整型數據溢出】不同類型的數據規定了不同的機器數的長度,由此規定了其取值範圍。整型數據超出取值範圍則進行整型數據的溢出處理,使其轉換爲取值範圍內的一個數。觀察32767+1和-32768-1。
- 【浮點數的有效位數】:該例體現浮點數有效位數對其加法的影響。
#include <iostream>
#include <iomanip>
using namespace std;
// 單精度:7位有效;雙精度:16位有效
int main(){
float a=0.00000678f;
double b=0.00000378;
a += 111111.111f;
b += 111111.111;
cout << setiosflags(ios::fixed) << setprecision(16);
cout << "a=" << a << endl << "b=" << b << endl;
return 0;
}
3.2 常量和變量
- 【常量】:值不可改變的數據,分字面常量和符號常量。
- 【整型常量】:三種進制。
- 【浮點型常量】:小數(默認爲double型)和指數形式。
- 【字符型常量】:單引號擴起一個字符。
- 【通用轉義字符】:八進制轉義\ooo(ooo可爲一到三位八進制數),十六進制轉義\xhh(hh可爲一到二位十六進制數)。轉義數值範圍爲0~225。
- 【字符串常量】:雙引號內的字符集可爲ASCII字符集或多字節字符集。
- 【符號常量】:
#define 標識符 常量
- 【變量】:程序運行期間值可變的量,對應一個內存單元,C++規定變量有其名,即用變量名代表內存單元。
- C++變量必須先定義後使用,變量定義時的賦值稱初始化,且初值不能是表達式。
- 【常變量】:用
const
修飾,必須初始化。在現代軟件開發中,常用const
把對象限定在最低訪問權限。
第4講:運算符與表達式
4.1 常用的運算符
- 求解問題的基本操作是運算,通過C++豐富的運算符及其表達式構成實現算法的基本步驟,在不同的程序結構控制下有機地組織在一起形成程序。
- 【視角】:運算符的操作數數目、優先級和結合性。
- 【運算符種類】:算術,自增自減,關係,邏輯,賦值,條件,逗號。
- 邏輯表達式求值時,不一定所有的運算均被執行。
4.2 表達式和類型轉換
- 【表達式】:表達式由運算符和運算對象(常量、變量、函數調用等)構成,其運算是有步驟的,運算時檢查運算符與運算對象的匹配合法性,其運算結果也有數據類型。
- 【類型轉換】:分隱式和顯式。
'a'+'b'運算時兩個字符均提升爲int型,12f+34f運算時兩個單精度浮點數均提升爲雙精度浮點數
。