C++筆記-運作原理與基礎模板

程式碼運作原理

我們知道其實電腦只懂 0 與 1,因此想跟電腦溝通就需要透過一些轉譯,

在人類的世界中所使用的語言叫高階語言,而只由 0 與 1 數字組成的語言稱為機器語言,我們很難看懂,

要將高階語言轉成機器語言,就需要藉由編譯器與組譯器的幫忙,編譯器可以幫我們把程式碼轉成所謂的組合語言,此時階段

就會有很多人開始看不懂了,當然如果有學過還是能稍微看懂,但組合語言經過組譯器就會變成0跟1,只有電腦才看得懂。

基礎C++模板

附上STL標頭檔:

1
#include<bits/stdc++.h>

注意,比競程時再用他,如果是其他用途(大型專案)的話最好是不要引入這個

這個標頭檔包含了之後會使用到的任何輸入輸出、資料結構,還藏有很多很方便的函式像是 <algorithm> 裡的 __gcd(計算最大公因數)

不過有些編譯器不包含這個標頭檔,可以自己 Google 找到對應的解決方法。

而在只有輸入輸出這些簡單的程式中,我們使用 <iostream> 就好

1
#include <iostream>

有時候看別人的Code還會看到一個標頭檔 <bits/extc++.h> ,那是內建紅黑樹、雜湊表的標頭檔等更進階的東西,現在暫時不理他。

為了方便,會在下面定義名稱空間 using namespace std; ,為什麼要加這個?因為我們需要將程式的幾乎所有東西都被定義到一個叫 std 的名稱空間裡,這樣在做像是輸入輸出 (cin, cout) 等操作時 不需要在每個句子前面加上 std:: 這種東西,也就是這段程式是起到了類似宣告成了全域變數的作用。 打個比喻,如果說標頭檔是圖書館,那 std 就是你想找的書。

而每個程式都會需要一個叫做 main 的主函式,這個函式就是整個程式的起點跟終點:

1
2
3
int main(){
	return 0; // 函式結束後,要使用這句話回傳一個值,來告訴程式已經執行完了。
}

在這裡就是將main函式宣告成int(整數),因此結束後也要回傳一個整數才行,而它也可以被宣告為signed(我習慣宣告成這個),這個等下會提到。

注意到,有些程式句後面加了分號有些卻沒有,這是 C++ 中規定的,以分號作為一段程式的結束(句點),而當在引入標頭檔以及有大括號時則不需要分號,因為在 C++,“引入標頭檔"這個行為就是以換行為這段程式碼的結束。同樣地,只要編譯器讀完大括號,就算是將這裡面的東西執行完了。

Cout

cout 是程式的嘴巴,負責讓電腦說話,只要使用 << 把文字傳給 cout 後,程式就會說出你給的台詞!

總結程式碼(模板):

1
2
3
4
5
6
#include<iostream>
using namespace std;
int main(){
	cout << "Hello World"; // 你會看到電腦跟你說Hello World
	return 0;
}

註解

在上面兩個程式碼中,會看到裡面寫了 // 後面接上說明,稱為 “註解”,註解的內容不會被編譯器讀取,註解有兩種模式: 單行註解及多行註解,在 C++ 裡的語法是這樣的

1
2
3
4
5
// 這是單行註解

/*
這是多行註解
*/

之後會有很多透過註解說明程式碼的部分。