C++自學教程第一課——你好世界,我是檸檬鯨。
大家好啊,一年一度的檸檬節——額,好像不止一度的檸檬節,它又到了!在這個悲傷的日子,我決定開啟一個C++的教程,主要是為了複習自己的C++知識,另外順便給新手們一個瞭解C++的方向。
本教程主要面向C++初學者,如果你先前學過C語言或者Java,學起來將會比較輕鬆一點。
C++是C語言的繼承,它既可以進行C語言的過程化程式設計,又可以進行以抽象資料型別為特點的基於物件的程式設計,還可以進行以繼承和多型為特點的面向物件的程式設計。
在我真正接觸程式設計之前,我向往的一直是Java,因為當時喜歡玩Minecraft,而Minecraft的mod開發需要用到Java,然而在我認識了C++以後,我再也不想碰Java了。
C++的好處和壞處此處也不科普,自行百度。
廢話少說,正片開始。
一、建立一個C++專案
雖然我不是很喜歡MS的VS,但不得不說這玩意確實很好用。另外Visual Studio的顏值確實高,雖然我更喜歡Vs code,但是VS code用GNU GCC編譯的C++程式中文亂碼太煩了,所以還是直接用了VS2019進行C++的開發。
第一步,開啟Visual Studio,單擊建立新專案。
第二步,選擇空專案並點選下一步。
第三步,為專案起個名字、設定位置並且點選下一步。
這樣我們就生成了一個空專案。
第四步,在解決方案資源管理器中的 專案名>>原始檔 資料夾上右鍵 新增>>新建項 。
第五步,在 新增新項視窗中左側點選Visual C++,選擇中央的 C++檔案,起個名字然後點選新增。
二、HelloWorld!我是一隻檸檬鯨
第一步,在程式碼區輸入以下內容:
1 #include <iostream> // 包含標準輸入輸出流的庫 2 3 int main(int argc, char* argv[]) // 標準MAIN函式開場 4 { 5 std::cout << "HelloWorld!" << std::endl; // 單個字串輸出並換行 6 std::cout << "我是一隻"; // 單個字串輸出並不換行 7 std::cout << "檸檬" << "鯨" << std::endl; // 多個字串輸出並換行 8 return 0; 9 }
第二步,選擇Debug X86 ,並且點選本地Windows偵錯程式。
第三步,控制檯視窗彈出,顯示輸出結果。
PS:如果出現編譯問題,先檢查程式碼是否正確,然後仔細對照我前面的操作,看看是否有出入。
三、程式碼分析
第一行:
1 #include <iostream>
include是一個計算機專業術語,一指C/C++中包含標頭檔案命令,用於將指定標頭檔案嵌入原始檔中。效果等同於將後面括號內包含的檔案的全部內容在#include的位置全部寫一遍。
iostream的意思是輸入輸出流,直接點說就是in(輸入) out(輸出) stream(流),取in、out的首字母與stream合成。這個庫的作用就是讓你能夠在控制檯進行輸入輸出。
第二行:
1 // 這是一個空行
第二行打個空行純屬個人愛好,因為我覺得這樣看起來更好看一些。
第三行:
1 int main(int argc, char* argv[])
首先我們要知道這個是一個函式,形式上類似數學中的函式,如:f(x) = x + 1,f(1) = 2;
int 表示返回型別是整型,整型表示某變數或常量裡面的值只能是整數而不能是小數或者文字等。意思就是後面這一串程式碼最終會變成一個數字。就像是上面提到的數學函式,f(1)其實最終是一個2。
main 是這個函式的名字。main是C/C++程式的入口,程式從main處開始執行。函式名的意義就類似數學中,f(x),g(x)等,函式名不同,一般其函式(表示式)也不同。
(int argc, char* argv[]) 是函式的引數列表,就類似於 f(x) 中的 x ,就是向函式傳遞的值。在C++原生程式碼中,int argc, char* argv[] 不是必須的,也就是說你可以只寫一個 int main(),但是建議加上,因為學習某些庫多半要用到。
第四、九行:
1 { 2 // 函式體 3 }
我們可以看到main函式後面的內容都被一對花括號{}包裹,這對花括號包含的內容就是函式體,就像是之前的數學函式的例子, f(x) = x + 1, 其中 x + 1 就是函式體。
第五行:
1 std::cout << "HelloWorld!" << std::endl;
std 在C++語言中,std其實就是standard標準的意思。std是C++預置的一個名稱空間,其中包含了許多必要的函式,比如cout、cin、string,你可以在你的程式碼之前加上
1 using namespace std;
這樣就可以直接使用cout、cin等函式,而不需要std::cout、std::cin。
名稱空間,也就是namespace的作用是劃定一塊區域,用來定義變數等等,然後這些變數只在這片區域有效,離開這片區域必須使用預作用符,比如std::cout,這樣就有效避免因為變數名相同導致程式碼衝突的問題,因此並不建議使用using namesapce,因為可能導致重複定義。
std::cout 的作用是在控制檯列印輸出後面所有被<<限定的內容,直到本行結束。std::cout本身不換行,因此存在std::endl用來換行,而std::ends可以打出空格。
分號的作用是一行程式碼的結束。
後面兩行的意思相差不大,因此不再贅述。
第八行:
1 return 0;
這一行的意義是函式最終返回了一個值,就像之前的f(1)最終等於2,這裡返回一個0,意思是當函式結束,就返回一個0。猶豫在這個例子中,和main函式對接的是控制檯,因此返回的0會在控制檯出現。
如果你return設定為1,那麼返回的就是1,只要你設定的返回值符合返回型別,都可以返回對應型別的值。
return是十分重要的功能,不可忽視,因為後面運用到函式,都需要返回值來進行相應操作。
C++的第一課就這樣吧,希望大家能夠學到一些知識,如有錯誤,大佬請指正,謝