C++的起源和歷史
C++誕生于20世紀(jì)80年代初,它的創(chuàng)造者是計算機科學(xué)家Bjarne Stroustrup。當(dāng)時,Stroustrup在貝爾實驗室工作,他希望為C語言添加一些功能,以便更好地支持系統(tǒng)開發(fā)。這個愿望促使他創(chuàng)建了C++。
C++的名字來源于它的基因,其中的"C"代表了C語言,而"++"表示C語言的一個增強版本。這個名字反映了C++的初衷,即在C語言的基礎(chǔ)上引入更多的功能和特性。
C++的發(fā)展歷程非常豐富多彩。1983年,第一個C++編譯器問世。1985年,Stroustrup發(fā)表了他的博士論文,詳細(xì)介紹了C++的設(shè)計和理念。接著,C++開始逐漸在計算機科學(xué)領(lǐng)域廣泛傳播開來。
C++的主要特點
C++的魅力在于它的多樣性和靈活性。以下是C++的主要特點:
-
面向?qū)ο缶幊蹋∣OP):C++是一門強大的面向?qū)ο缶幊陶Z言。它支持面向?qū)ο蟮暮诵母拍?,如封裝、繼承和多態(tài)性。這使得C++成為構(gòu)建復(fù)雜軟件系統(tǒng)的理想選擇。
-
封裝、繼承、多態(tài)性:C++鼓勵良好的代碼組織,通過類和對象實現(xiàn)封裝,通過繼承創(chuàng)建新的類,通過多態(tài)性支持靈活的對象行為。
-
標(biāo)準(zhǔn)模板庫(STL):C++提供了強大的STL,它包括許多容器和算法,可以大大簡化數(shù)據(jù)結(jié)構(gòu)和算法的實現(xiàn)。
-
高性能:C++的性能一直是其吸引力之一。它允許直接內(nèi)存操作,使得C++程序可以高效地執(zhí)行。
-
跨平臺性:C++可以在各種操作系統(tǒng)上運行,這使得它成為跨平臺開發(fā)的首選語言之一。
C++程序的結(jié)構(gòu)
一個典型的C++程序由多個部分組成,這些部分包括頭文件引入、全局聲明、main函數(shù)、函數(shù)定義等。
#include <iostream> // 引入頭文件
// 全局聲明
int main() {
// main函數(shù)
// 代碼邏輯
return 0; // 返回值
}
// 函數(shù)定義
編寫一個簡單的Hello World程序
#include <iostream> // 引入頭文件
int main() {
// main函數(shù)
// 使用cout輸出Hello World到控制臺
std::cout << "Hello, World!" << std::endl;
return 0; // 返回值
}
運行結(jié)果:
程序解釋
-
#include <iostream>
:這是一個頭文件引入的示例,它允許我們使用C++標(biāo)準(zhǔn)庫中的輸入輸出功能。在C++中,頭文件用于包含預(yù)定義的函數(shù)和類,以便我們可以使用它們。 -
int main()
:這是C++程序的入口點,也就是main函數(shù)。在這個函數(shù)內(nèi)部,我們編寫程序的主要邏輯。main函數(shù)的返回值類型是整數(shù)(int),通常用于指示程序的執(zhí)行狀態(tài)。如果返回0,表示程序正常結(jié)束。 -
std::cout << "Hello, World!" << std::endl;
:這是一個輸出語句,使用std::cout
對象將字符串"Hello, World!"輸出到控制臺。<<
運算符用于將數(shù)據(jù)插入到輸出流中,std::endl
表示換行。
這個Hello World程序很簡單,它演示了C++程序的基本結(jié)構(gòu)和語法。我們可以在main函數(shù)內(nèi)部編寫更多的代碼來實現(xiàn)各種功能。
基本數(shù)據(jù)類型
C++提供了多種基本數(shù)據(jù)類型,用于存儲不同種類的數(shù)據(jù)。以下是一些常見的基本數(shù)據(jù)類型:
- 整數(shù)類型(int):用于存儲整數(shù)值,如-1、0、1、2等。
- 浮點類型(float和double):用于存儲帶有小數(shù)點的數(shù)值,如3.14、0.5等。
- 字符類型(char):用于存儲單個字符,如’A’、'B’等。
- 布爾類型(bool):用于存儲布爾值,只有兩個可能的值,true和false。
聲明和初始化變量
在C++中,我們使用變量來存儲和操作數(shù)據(jù)。聲明變量意味著我們在內(nèi)存中為它們分配了存儲空間。
int age; // 聲明一個整數(shù)變量
float price = 9.99; // 聲明并初始化一個浮點數(shù)變量
char grade = 'A'; // 聲明并初始化一個字符變量
bool isStudent = true; // 聲明并初始化一個布爾變量
在上面的示例中,我們聲明了四個不同類型的變量:age
(整數(shù))、price
(浮點數(shù))、grade
(字符)和isStudent
(布爾)。
變量的命名規(guī)則和標(biāo)識符
在C++中,變量名必須遵循一些命名規(guī)則和標(biāo)識符規(guī)定:
- 變量名可以包含字母、數(shù)字和下劃線。
- 變量名必須以字母或下劃線開頭,不能以數(shù)字開頭。
- 變量名區(qū)分大小寫,這意味著
myVar
和myvar
被視為不同的變量。 - 避免使用C++關(guān)鍵字作為變量名,如
int
、float
、if
等。
有效的變量名示例:myVar
、age
、user_name
。良好的命名習(xí)慣可以使代碼更具可讀性和維護(hù)性。
使用cin實現(xiàn)用戶輸入數(shù)據(jù)
在C++中,我們使用cin
來接收用戶輸入的數(shù)據(jù)。cin
是C++標(biāo)準(zhǔn)庫中的輸入流對象,它可以讀取用戶從鍵盤輸入的信息。
#include <iostream>
using namespace std;
int main() {
string name;
cout << "請輸入您的姓名: ";
cin >> name;
cout << "歡迎您," << name << "!" << endl;
return 0;
}
運行結(jié)果:
在示例中,我們首先聲明了一個字符串變量name
來存儲用戶的姓名。然后,我們使用cout
輸出流對象向用戶顯示一條提示消息,要求用戶輸入姓名。接下來,使用cin
輸入流對象接收用戶的輸入,并將其存儲在name
變量中。最后,我們使用cout
再次輸出歡迎消息,包括用戶的姓名。
輸入流和輸出流的概念
在C++中,cin
和cout
分別是輸入流和輸出流的實例。流是一種數(shù)據(jù)傳輸方式,它可以將數(shù)據(jù)從一個地方傳輸?shù)搅硪粋€地方。輸入流用于從外部(例如鍵盤)讀取數(shù)據(jù),而輸出流用于向外部(例如屏幕)寫入數(shù)據(jù)。
流的概念使我們能夠以一種連貫和一致的方式進(jìn)行輸入和輸出操作,無論是與用戶交互還是與文件進(jìn)行數(shù)據(jù)交換。
C++中的運算符
C++提供了多種類型的運算符,用于執(zhí)行各種操作。以下是一些常見的運算符:
- 算術(shù)運算符:用于執(zhí)行基本的數(shù)學(xué)運算,例如加法、減法、乘法和除法。
int a = 10;
int b = 5;
int sum = a + b; // 加法
int diff = a - b; // 減法
int product = a * b; // 乘法
int quotient = a / b; // 除法
- 關(guān)系運算符:用于比較兩個值之間的關(guān)系,返回布爾結(jié)果(真或假)。
int x = 10;
int y = 5;
bool isEqual = (x == y); // 等于
bool isNotEqual = (x != y); // 不等于
bool isGreater = (x > y); // 大于
bool isLess = (x < y); // 小于
- 邏輯運算符:用于執(zhí)行邏輯操作,例如邏輯與、邏輯或和邏輯非。
bool condition1 = true;
bool condition2 = false;
bool resultAnd = (condition1 && condition2); // 邏輯與
bool resultOr = (condition1 || condition2); // 邏輯或
bool resultNot = !condition1; // 邏輯非
表達(dá)式的構(gòu)建和求值
在C++中,表達(dá)式是由運算符和操作數(shù)組成的組合,用于執(zhí)行特定的計算。表達(dá)式可以包含變量、常量和函數(shù)調(diào)用。
int a = 10;
int b = 5;
int result = (a + b) * 2; // 表達(dá)式由運算符和操作數(shù)構(gòu)成
在上面的示例中,表達(dá)式(a + b) * 2
包含了加法運算符、乘法運算符和操作數(shù)a、b、2。
表達(dá)式的求值是根據(jù)運算符的優(yōu)先級和結(jié)合性來執(zhí)行的。C++有一套嚴(yán)格的規(guī)則來確定表達(dá)式中各個運算符的執(zhí)行順序。
數(shù)學(xué)運算示例
簡單的數(shù)學(xué)運算示例來加深對表達(dá)式的理解:
#include <iostream>
using namespace std;
int main() {
int a = 10;
int b = 5;
// 加法和乘法表達(dá)式
int sum = a + b;
int product = a * b;
// 輸出結(jié)果
cout << "Sum: " << sum << endl;
cout << "Product: " << product << endl;
return 0;
}
運行結(jié)果:
在示例中,我們計算了兩個整數(shù)的和and積,并使用cout
輸出流將結(jié)果顯示在屏幕上。
基本的控制結(jié)構(gòu)(if語句,循環(huán))
條件語句 - if和if-else
條件語句允許根據(jù)條件的真假執(zhí)行不同的代碼塊。if語句的基本用法:
if (條件) {
// 如果條件為真,執(zhí)行這里的代碼塊
}
使用if語句來判斷一個數(shù)字是否為正數(shù):
#include <iostream>
using namespace std;
int main() {
int number;
cout << "請輸入一個整數(shù):";
cin >> number;
if (number > 0) {
cout << "這是一個正數(shù)" << endl;
}
return 0;
}
運行結(jié)果:
在示例中,如果用戶輸入的數(shù)字大于0,將輸出"這是一個正數(shù)"。
if-else語句允許我們在條件為假時執(zhí)行另一段代碼塊:
if (條件) {
// 如果條件為真,執(zhí)行這里的代碼塊
} else {
// 如果條件為假,執(zhí)行這里的代碼塊
}
下面是一個判斷數(shù)字奇偶性:
#include <iostream>
using namespace std;
int main() {
int number;
cout << "請輸入一個整數(shù):";
cin >> number;
if (number % 2 == 0) {
cout << "這是一個偶數(shù)" << endl;
} else {
cout << "這是一個奇數(shù)" << endl;
}
return 0;
}
運行結(jié)果:
循環(huán)結(jié)構(gòu) - for和while
循環(huán)結(jié)構(gòu)允許我們重復(fù)執(zhí)行一段代碼,直到滿足特定條件為止。for循環(huán)的基本用法:
for (初始化; 條件; 步進(jìn)) {
// 循環(huán)體
}
使用for循環(huán)來打印從1到10的數(shù)字:
#include <iostream>
using namespace std;
int main() {
for (int i = 1; i <= 10; i++) {
cout << i << " ";
}
cout << endl;
return 0;
}
運行結(jié)果:
while循環(huán)的用法:
while (條件) {
// 循環(huán)體
}
使用while循環(huán)計算數(shù)字的階乘:
#include <iostream>
using namespace std;
int main() {
int n;
cout << "請輸入一個正整數(shù):";
cin >> n;
int factorial = 1;
while (n > 0) {
factorial *= n;
n--;
}
cout << "階乘結(jié)果為:" << factorial << endl;
return 0;
}
運行結(jié)果:文章來源:http://www.zghlxwxcb.cn/news/detail-728414.html
if語句用于根據(jù)條件執(zhí)行不同的代碼塊,而循環(huán)結(jié)構(gòu)允許我們重復(fù)執(zhí)行代碼。文章來源地址http://www.zghlxwxcb.cn/news/detail-728414.html
到了這里,關(guān)于十四天學(xué)會C++之第一天(入門和基本語法)的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!