- c++的曆史
- 什麼是編程語言
- 什麼是編譯器?
- 什麼是譯員?
- 什麼是麵向對象編程語言?
- 集成開發環境(IDE)
- 調試
- 類型的錯誤
- 麵向過程編程(POP)與麵向對象編程(OOPs)的區別
- POP的利與弊
- c++術語
c++的曆史
c++由C語言發展而來,而C語言則是由之前的兩種編程語言BCPL和B語言發展而來。
- BCPL:
BCPL於1967年由Martin Richard開發,是一種用於編寫操作係統軟件和編譯器的語言。
- B語言:
B語言是由肯·湯普森開發的。
- C語言:
C語言由B語言演變而來,B語言是Dennis Ritchie於1972年在AT和T實驗室設計的一種編程語言。
- c++:
20世紀80年代初,Bjarne Stroustrup在貝爾實驗室開發了C語言的擴展。
什麼是編程語言?
編程語言是一組規則,它提供了一種與計算機討論要執行什麼操作的方法。
編程語言是一組用於通信算法的規則。
編程語言是一種用機器可讀和人可讀的形式描述競爭的符號係統。
什麼是編譯器?
編譯器掃描整個源代碼,並將其翻譯成機器可讀的形式。
所需的執行時間更少。
我們可以在比賽結束後保存文件。
由於整個代碼是一次性編譯的,所以不需要進一步編譯。
編譯器在掃描整個代碼後生成錯誤代碼。
編譯器不太適合調試。
CPU利用率更多的是在編譯器中。
它被用在C, c++語言中。
什麼是譯員?
解釋器一行一行地翻譯整個代碼。
解釋器所需執行時間較多。
解釋器在解釋後不保存文件。
每一行代碼都應該被編譯。這意味著解釋器一行一行地編譯整個代碼。
它將繼續轉換,直到發現錯誤為止。
它很適合調試。
CPU利用率較低。
它被用於python, java。
什麼是麵向對象編程(OOP):-
c++是麵向對象編程(OOP)語言,它允許我們通過使用對象將複雜的代碼劃分為更小的集合。它為程序提供了一個清晰的結構,並允許代碼被重用。OOPs有六個特性:類和對象、消息和方法、封裝、繼承、多態、抽象。麵向對象編程的四大支柱是:
- 封裝
- 繼承
- 多態性
- 抽象。
- OOPs的四大支柱:-
- 封裝:
數據非常重要,所以我們需要保護這些數據。這種類型的數據保護被稱為封裝,所以我們可以說封裝是數據和函數的包裝。
- 繼承:
一個對象通過關係獲得另一個對象的屬性。模擬的這種關係稱為繼承。
例如,
孩子繼承了父母的一些特征。
老師教給學生一些好的東西。
- 多態:
多態性意味著“多種形式”,但在編程語言術語中,多態性是指以不同方式使用操作符或方法,使最終用戶在不同平台上使用軟件的能力。
- 抽象:
從其餘的屬性中選擇一些屬性稱為抽象,因此我們可以說抽象隱藏了不必要的數據,而彈出了重要的數據。
- 麵向對象的優點:-
- 將軟件開發模塊化,就像其他工程學科一樣。
- 使軟件項目更易於管理和可預測。
- 對於字母的可維護性,由於軟件維護成本就是開發成本。
- 為了重用代碼,防止每次都重新發明輪子。
麵向對象編程在實際的業務係統中有著廣泛的應用。需要麵向對象的各種地方是:-
- 數據庫管理係統。
- 情報係統。
- 模式識別係統。
- 圖像處理係統。
- 並行計算。
- 移動計算。
- 數據安全係統。
- 麵向對象的特點:-
- 強調數據而不是程序。
- 程序被分為所謂的對象。
- 對對象的數據進行操作的函數被放在一個數據結構中。
- 對象之間可以通過函數進行通信。
- 隻要有必要,就可以很容易地添加新數據和函數。
- 如何編寫基本的c++代碼:-
- # include是一個預處理器指令。
- 預處理器指令以#符號開始
- 在編譯之前對它們進行處理。
- 指令" # include
"告訴預處理器包含" iostream "頭文件來支持I/O操作。 - 通過使用命名空間std(")將std聲明為程序中使用的默認命名空間。程序中使用的名稱count和end屬於std命名空間。
- 這兩條線將出現在我們所有的程序中。
- " count "指的是標準輸出(或控製台輸出)。
- 符號<<被稱為流插入操作符(或put to operator),它用於放置控製台。
- " end l "表示行或新行的結束,它被放到控製台中以將錯誤字符串連接到新行的開始。
- 終止main()函數,並向操作係統返回一個值0。
例子:-
#include using namespace std;int main() {cout<<"Hello world";返回0;}
c++的基本代碼
# include < iostream >
使用名稱空間性病;
int main ()
{
cout < <“Hello world”;
返回0;
}
這是c++的基本示例
- c++環境:-
- 編輯器:
第一階段c++環境下,用來創建程序源代碼。它是你輸入程序的地方。
- 預處理程序:
c++環境的第二個階段是在編譯器的轉換階段開始之前自動執行程序。
- 編譯器:
第三階段c++環境下,用於將源代碼編譯成機器語言(目標代碼文件/二進製格式)。
- 鏈接器:
c++環境的第四個階段是將(.cc)文件轉換為可執行文件(. C)。
- CPU: -
c++環境的第六個階段可能是在程序執行時存儲新的數據值。
步驟1:
步驟2:
步驟3:
目的:
顧不上
第六段:
集成開發環境(IDE): -
IDE是一個具有編譯器、調試器和應用程序構建工具的程序。可以在不離開IDE的情況下創建程序調試。
- 調試:
錯誤:-
程序中的錯誤可以指在程序執行或編譯中產生困難的任何東西。
調試:
查找導致程序行為出乎意料的糾正錯誤或錯誤。這意味著調試可以糾正編程錯誤。
類型的錯誤:
- 語法錯誤:
語法錯誤是由於違反c++語法規則而引起的錯誤。
一個沒有語法錯誤的程序可能仍然不能產生正確的結果。
例如:- 2+3*5和(2+3)*5都是語法正確的表達式,但含義不同。所以,如果你在該用其中一個表達式的地方用了其中一個表達式而該用另一個表達式的地方用了其中一個表達式,你的程序就會產生錯誤的結果。
- 運行時錯誤:-
運行時錯誤也稱為語義錯誤或智能錯誤,是由程序執行期間的輸入輸出規則引起的。
- 邏輯錯誤:-
邏輯錯誤是最難識別和糾正的錯誤,因為計算機不像語法和運行時錯誤那樣在程序中指出這些錯誤。
然而,您的程序可能看起來已經成功執行;答案可能是完全錯誤的。
麵向過程編程(POP)和麵向對象編程(OOPs)的區別:-
麵向過程編程(POP): -
1)在麵向過程編程中,程序被分成稱為函數的小部分。
2)重要性——在麵向過程編程中,重要的不是數據而是函數。
3)麵向過程編程(Procedure Oriented Programming)采用自上而下的方法。
4)添加新的數據和功能並不容易。
5)在麵向過程編程中,大多數函數使用全局數據進行共享,這些數據可以在函數之間自由訪問。
6)麵向過程編程沒有任何合適的方法來隱藏數據,所以它不太安全。
- 麵向對象編程:
1)在麵向對象編程中,程序被分成稱為對象的部分。
2)在麵向對象編程中,重視的是數據而不是函數。
3)在麵向對象編程中自下而上的方法。
4)麵向對象提供了更多添加數據的功能。
5)在麵向對象編程中,數據不能很容易地從一個函數移動到另一個函數,它被保持為公共或私有。
6)麵向對象提供數據隱藏,因此更安全。
POP的優缺點:-
- 麵向過程的編程語言是一種賦予過程、方法或函數更多含義的語言。這裏,函數調用另一個。
- 每個函數中可以有全局變量和局部變量。
- 在這種語言中,任務被劃分為更小的任務或子任務,稱為過程、函數或方法。
- 任何函數都可以在任何時刻被調用,而全局變量可以被所有函數訪問。而局部變量是對應函數的局部變量。
- 麵向過程的編程語言遵循從上到下的方法。
- 自上而下的方法指的是將一個問題作為一個大任務或整體來處理。然後將此任務和小任務按默認值寫入。
- 這種類型的編程的缺點是很難跟蹤哪些函數使用了數據,而且錯誤糾正也很困難。
- C語言是麵向過程語言的一個例子。
- 數據隱藏在麵向過程的編程中是不可能進行數據擴展的。
- 麵向對象編程及其開發:-
- 顧名思義,麵向對象編程賦予那些擁有函數可以訪問的對象數據的對象更多的意義。一個對象的函數可以通過該對象的函數訪問另一個對象的數據。
- 麵向對象編程使用自底向上的方法;較小的任務首先被詳細處理,然後逐漸創建整個龐大的係統。
- c++和java是麵向對象編程的例子。
- 另一方麵,麵向對象編程對數據比對過程更重要。
c++術語:-
- 語句:-編程語句執行一段編程動作。必須以分號(;)結束。
- 預處理器指令:- #include是一個預處理器指令,而不是一個編程語句。它以#開頭。它在編譯程序之前進行處理。預處理器指令不以分號結束。
- 塊:—塊是用大括號括起來的一組語句。這個組被視為一個單一的單位。這是程序中的一個塊,它包含main函數的主體。沒有必要在大括號後加上分號。
- 空白:-空白,頂部,新行統稱為空白。額外的空白被忽略,也就是說,需要一個空白區域來分隔令牌。
- 區分大小寫:—c++是區分大小寫的。
例如:—HELLO不是HELLO,也不是HELLO。
- 數據類型:
c++中的數據類型分為用戶定義類型、派生類型和原語類型。
- 原始數據類型:-
基元數據類型具有以下數據類型:
- Integer-int
- Character-char
- 浮動值
- 浮動——漂浮
- 雙
而且
無效
- 派生數據類型:-
派生數據類型包括以下數據類型:
- 數組
- 指針
- 參考文獻
- 定義:
- 結構
- 聯盟
- 類
- 枚舉
- 指針
指針是一個變量,它的值是另一個變量的地址。
指針變量聲明的一般形式是類型
* var_name;
這裏,type是指針基類型;它必須是一個有效的c++數據類型,var_name是一個指針變量的名稱。
例如:
int * ip;
雙*英國石油(bp);
浮*《外交政策》;
char * ch;
指針可以有int, double, float, char等數據類型。
指針代碼:-
# include < iostream >
使用名稱空間性病;
Int main ()
{
Int var = 20 * ptr1;
Ptr1 = var;
cout << " ptr的地址";
cout < < ptr1 < < end1;
cout<< " ptr值" <<*ptr< } 代碼2:- # include < iostream > 使用名稱空間性病; int main () { Int *ptr1, *ptr2, a, b, c; Cout << "輸入a和b的值"; cin > >一個> > b; ptr1 =和; ptr2 =魅; c = * ptr1 + * ptr2; cout<< "添加指針"; cout c < < < < end1; } 重複。 編譯器在將程序轉換為可執行代碼時,簡單地忽略注釋。 為了識別注釋,C使用開頭/*和結尾*/注釋took。 注釋可以出現在程序中的任何地方。 當需要解釋代碼的某一點時,也會找到注釋。 注釋不能嵌套,這意味著注釋不能在注釋中包含注釋。 示例= // main函數開始字符// 這是一個單行注釋的例子。 示例= 該程序接受兩個整數並將其和提供給用戶*/ 這是一個多行注釋的例子 注釋是為了讓任何人在分析代碼時都能更容易讀懂程序。 # include < iostream > 使用名稱空間性病; int main () { cout < <“Hello world”; 返回0; } 這個符號表示程序的開始和結束。 該符號表示從鍵盤/moose或數據文件等輸入/輸出。 此符號表示數據的算術處理。 這個符號表示一個決定,其中可能有兩種選擇。 該符號表示操作流程。 要連接一個或多個頁麵,使用此連接器。
小寫- a b c 規則標識符。 常量是指在程序執行期間不改變的固定值。 常數
數字字符
Integer Real Single String
尾數(' ')(" ") 和指數 十進製八進製十六進製 o-9鹿0 - 9 +, - 0 a-f 0 x 整數常量指的是一個數字序列。 整型常量有三種類型。 它由0-9位數字組成,前麵有一個可選的-或+號。 十進製整數的有效示例是:123,-321,0,6554321,+78。 數字之間不允許嵌入空格、逗號和非數字字符。 15 750, 2萬,100美元是非法的。 八進製整數由0-7和前導0組成。 例子;037, 0, 0435, 0551。 前麵有ox或ox的數字序列被認為是十六進製整數。 十六進製整數包括0 ~ 9位數字和A、F字母。 示例- ox9, OX9F, oxbc等有效。 少數字符有另一種表示方式,稱為三元序列。三元圖是表示單個字符的三個字符序列,該序列總是以兩個問號開始。Trigraphs在任何出現的地方展開,包括在字符串字麵量和字符字麵量中,在注釋中,以及在預處理器指令中。以下是最常用的三疊圖序列: 作用域是程序的一個區域,一般來說,有三個地方可以聲明變量: 在一個稱為局部變量的函數或塊中, ∙在定義稱為形式參數的函數參數時。 ∙在所有稱為全局變量的函數之外。我們將在後麵的章節中學習什麼是函數,以及它的參數。這裏讓我們解釋一下什麼是局部變量和全局變量。 在函數或塊中聲明的變量是局部變量。它們隻能由函數或代碼塊中的語句使用。局部變量對於自身變量之外的函數是不知道的。下麵是使用局部變量的示例: # include < iostream > 使用名稱空間性病; int main () { //本地變量聲明:int a, b;int c;// 實際初始化 = 10; b = 20; C = a + b; cout < < c; 返回0; } 全局變量定義在所有函數之外,通常在程序頂部。全局變量將在程序的整個生命周期中保持其值。任何函數都可以訪問全局變量。這就是一個全局 # include < iostream > 使用名稱空間性病;//全局變量聲明:int g; int main () { //本地變量聲明:int a, b; 實際初始化/ / = 10; b = 20; G = a + b; cout < < g; 返回0; } 變量在聲明後可在整個程序中使用。下麵是使用全局變量和局部變量的示例: 程序可以對局部變量和全局變量使用相同的名稱,但函數內部的局部變量的值優先。例如: 包括< iostream > 使用名稱空間性病; //全局變量聲明:// Int g = 20; int main () {//本地變量聲明:// Int g = 10; cout < < g; 返回0;} 當編譯並執行上述代碼時,會產生以下結果: 10 當定義了一個局部變量時,它不是由係統初始化的,您必須自己初始化它。全局變量在定義如下時由係統自動初始化: 正確初始化變量是一個很好的編程實踐,否則有時程序會產生意想不到的結果。 常量是指程序不能更改的固定值,它們被稱為字麵量。常量可以是任何基本數據類型,可以分為整數數字、浮點數字、字符、字符串和布爾值。同樣,常量被當作普通變量對待,隻是它們的值在定義後不能被修改。 這裏有一些整數字麵量的例子。整數字麵值可以是十進製、八進製或十六進製常量。前綴指定基數或基數:0x或0x表示十六進製,0表示八進製,0表示十進製。整數字麵量的後綴也可以是U和L的組合,分別表示unsigned和long。後綴可以是大寫或小寫,可以是任何順序: 212 / /法律 215 u / /合法 0 xfeel / /法律 078 //非法:8不是八進製數字 032UU //非法:後綴不能重複 以下是各種類型的Integer字麵量的其他示例: 85 / /十進製 0213 / /八進製 0 x4b / /十六進製 30 / / int 30u //無符號整數 30 l / /長 30ul // unsigned long 浮點字麵值由整數部分、小數點、小數部分和指數部分組成。可以用十進製形式或指數形式表示浮點字麵值。在使用十進製形式表示時,必須包含小數點、指數或兩者,而在使用指數形式表示時,必須包含整數部分、小數部分或兩者都包含。有符號指數由e或e引入。下麵是一些浮點字麵值的例子: 3.14159 / /法律 314159 e-5l / /法律 510E //非法:不完全指數 210f //非法:沒有小數點或指數 .e55 //非法:缺少整數或分數。 有兩個布爾值,它們是標準c++關鍵字的一部分:true表示true。false值表示false。你不應該認為true的值等於1,false的值等於0。 字符文字用單引號括起來。如果文字以L(僅大寫)開頭,則它是一個寬字符文字(例如L ' x '),應該存儲在變量的wchar_t類型中。否則,它是一個狹窄的字符字麵量(例如' x '),可以存儲在一個簡單的char類型變量中。字符文字可以是普通字符(如' x ')、轉義序列(如' \t ')或通用字符(如' \u02C0 ')。在c++中,有些字符在前麵加反斜杠時具有特殊含義,它們被用來表示換行符(\n)或製表符(\t)。這裏,你有一個這樣的轉義序列代碼的列表: 下麵是顯示一些轉義序列字符的示例: # include < iostream > 使用名稱空間性病; int main () {cout << " Hello\t World\n\n "; Cout <<“這是我的第一個項目”; 返回0;} 當編譯並執行上述代碼時,會產生以下結果: 你好世界 這是我的第一個項目 字符串文字用雙引號括起來。字符串包含與字符字麵量類似的字符:普通字符、轉義序列和通用字符。可以使用字符串字麵量將長行拆分為多行,並使用空格分隔它們。下麵是一些字符串字麵量的例子。所有三種形式都是相同的字符串。 你好,親愛的” “你好,親愛的\” “你好,” “d” “耳朵” c++中有兩種簡單的方法來定義常量: 使用#定義預處理器。 ∙使用const關鍵字。 下麵是使用#define Preprocessor定義一個常量的形式: #定義標識符值 下麵的例子詳細解釋了它: # include < iostream > 使用名稱空間性病; #定義長度10 #定義寬度5 #定義換行符“\ n” int main () { int區域; 麵積=長度*寬度; cout < <區域; cout < <換行; 返回0; } 當編譯並執行上述代碼時,會產生以下結果: 50 你可以使用const前綴來聲明具有特定類型的常量,如下所示: Const類型變量= value; 下麵的例子詳細解釋了它: # include < iostream > 使用名稱空間性病; int main () { const int LENGTH = 10; const int WIDTH = 5; const char NEWLINE = ' \n '; int區域; 麵積=長度*寬度; cout < <區域; cout < <換行; 返回0; } 當編譯並執行上述代碼時,會產生以下結果: 50 注意,用大寫字母定義常量是一種很好的編程實踐。 數組是放置在連續內存位置中的一係列相同類型的元素,可以通過向唯一標識符添加索引來單獨引用這些元素。 這意味著,例如,我們可以在數組中存儲5個int類型的值,而不必聲明5個不同的變量,每個變量都有不同的標識符。相反,使用數組,我們可以存儲5個相同類型的不同值,例如具有唯一標識符的int。例如,一個包含10個int類型的整數值的數組叫做billy,可以這樣表示: 1 2 3 4 5 6 7 8 9 10 多維數組派生自基本數據類型或內置數據類型 C語言。 二維數組被理解為行和列,其應用包括二維矩陣。 多維數組中多采用二維數組。 這是三維陣列。 Int b[2][3]={(b1, b2, b3)(b4, b5, b6)}; 在這個例子中- " int b "是數組的名稱 “[2]”表示行數 "[3] "表示列數 (b1 b2 b3)是第一行的元素 (b4, b5, b6)是第二行中的元素 如何聲明多維數組? Int b [2] [3] 數組的名稱是b 元素的類型是int 元素的大小是2*3=6 在二維數組中使用大括號分隔行:- int c[4][3] ={(1、2、3),(4、5、6),(7 8 9)、(10、11、12)}; 數據可以通過交互方式使用嵌套的for循環或使用數據類型輸入到二維數組中。 嵌套循環用於在二維數組中輸入元素。 通過增加數組的索引值,可以在二維數組中輸入元素。 為了可讀性,二維數組的輸出應該包含行和列。 嵌套的for循環用於打印行和列的順序。 通過增加數組的索引值,存儲在該索引值處的元素將打印在輸出屏幕上。 數組代碼:- # include < iostream > 使用名稱空間性病; Void main () { Int a [3] [4]; int i, j。 clrscr (); 打印f("輸入數組中的元素:"); (我= 0;我< 3;我+ +) { (j = 0;j < 3: + +) { Scanf (" %d ", & a[i] [j]); } } (我= 0;< 3:我+ +) { (j = 0; < 3; j + +) { printf (" % d”,[我][j]); } } 打印(“\ n”); getch (); } 這段代碼給你輸出: 1 2 3. 4 5 6 7 8 9 1 2 3 4 5 6 在數組的存儲分配中,連續內存分配在所有數組元素中。 示例中顯示的存儲安排使用數組下標,也稱為數組下標。 數組聲明:int a [3] [4]; 數組元素: 一個[0][0][0][1][0][2][0][3] 一個[1][0]一個[1][1]一個[1][2]一個[1][3] 一個[2][0][2][1][2][2][2][3] 存儲分配: 一個[0][0] 一個[0][1] 第0行:[0][2] 一個[0][3] 一個[1][0] 第一行:[1][1] 一個[1][2] 一個[1][3] 一個[2][0] 第二行:[2][1] 一個[2][2] 一個[2][3] 數組代碼:- # include < iostream > 使用名稱空間性病; void main () { Int a [3] [3], b [3] [3], c[3] [3]; int I, j。 clrscr (); 打印f("輸入數組中的元素:"); (我= 0;我< 3;我+ +) { (j = 0;j < 3;j + +); { 掃描f(“%d”,& a [i] [j]); } } (我= 0;我< 3;我+ +) { (j = 0;j < 3;j + +) { C =a [i] [j] +b [i] [j]; 打印f(“%d”,c [i] [j]); } } print(“\ n”) } } getch; 這段代碼將以-的形式輸出 1 2 3. 4 5 6 7 8 9 1 2 3. 4 5 6 7 8 9 2 4 6 8 10 12 14 16日18 在實現數組時,這組字符稱為字符串。它被稱為數組中的字符串。 例如, Char名[5]= “陽光” 必須包含頭文件 當我們需要查找字符串的長度時,使用這個函數。 例如,我們在括號中有一個名為[10]的字符字符串。10碼,我們試著儲存“sunny”。 字符串名稱[10]= "陽光"。 數組的大小為10意味著我們最多可以存儲10個字節的數據,但上述語句的輸出將高於statement5。 該函數用於比較字符串。Strcmp()使用ASCII標準來比較兩個字符串。 Char n[10] = " Poonam " Char n[10] = "陽光" Strcmp(目標字符串,源字符串) 比較字符串(n,米) 此函數還用於比較兩個字符串。 但不同之處在於,對於這個函數," poonam "和poonam是相同的。 這將在比較時返回()。 但是對於strcmpi(),它將是值 Strcmpi(目標字符串,源字符串) Strcmpi (n, m); 此函數用於將一個字符串複製到另一個字符串。 例如,我們有兩個字符數組。 M [10]= " sunny ", n [10]; Strcpy()也有兩個參數。 Strcpy(目標字符串,源字符串) 我們寫:strcpy (n, m); 我們會得到:m [10]: " sunny ", n [10]= " sunny " 此函數用於連接兩個字符串。strcat有兩個形參 語法: Strcat(目標字符串,源字符串) Char n[5] = "你好" 雪兒n[5] = "世界" Strcat (n, m) 用於將一個字符串複製到另一個字符串的函數 例如,有兩個字符 M [10]= " sunny ", n [10]; Strcpy(目標字符串,源代碼) 也可以寫成= strcpy(n/m) 我們會得到=m [10]= " sunny " n [10]= " sunny " 看看Greabeplay2018官网t Learning Academy。要更詳細地了解c++,請使用我們的免費課程內容數據科學和機器學習。
汽車
Int
返回
長
打破
雙
簽署
靜態
情況下
開關
無效
而
字符
電阻器
短
無符號
常量
去
Anum
Stract
繼續
如果
走讀生
類型的
默認的
浮動
的大小
聯盟
做
其他的
為
三線圖形
更換
??=
#
??/
\
??”
^
??(
[
? ?)
]
? ? !
|
??<
{
??>
}
??-
~
數據類型
初始化器
int
0
字符
' \ 0
浮動
o
雙
0
指針
零
轉義序列
意義
\ \
\字符
\ '
'字符
\ ?
?字符
、一個
警報和貝爾
\ b
退格
\ f
換頁
\ n
換行符
r \
回車
\ t
水平選項卡
v \
垂直製表符
\已壞
一到三位數字的八進製數
\ xhh
一個或多個數字的十六進製數