無痛入手 C++:基礎系列1 - Hello C++! 的程式架構介紹

2024/04/20閱讀時間約 6 分鐘

程式語言到底是什麼?

簡單來說,程式設計師其實就是「電腦溝通師」,用程式來命令電腦做事。

程式語言就是人類用來命令電腦做事情所用的語言
那跟老闆用中文命令我做事有什麼差別呢?

眾所皆知,人類是進化程度相當高的頂級靈長類,老闆只需要給一個概略性的要求,你自己動腦想一想就知道該做什麼了。
電腦不一樣,它只是無情的運算機器: 一個指令一個動作,不會思考、不會變通。電腦會「完全依照你字面上的意思去執行命令」
所以跟中文相比,程式語言必須非常格式化、非常精確、定義嚴謹,電腦才有辦法理解你想表達的意思。

簡單來說就是人類很聰明、理解力強,但是動作很慢,還會偷懶~
電腦則是做事效率超高、不適用勞基法 (台灣企業主表示滿意),但笨得要死,所以需要專業的「電腦溝通師」用電腦聽得懂的方式去命令它做事情。


Hello C++! 的程式架構介紹

請記得程式是人類用來命令電腦做事情所說的話,你可以想像點下「執行」按鈕以後,有一台電腦會用迅雷不及掩耳的速度把你寫的程式從第一行讀到最後一行,然後依照你所說的去做。
現在,我們來逐行了解上一篇文章中出現的「第一支程式」在做什麼。

#include <iostream>
using namespace std;

int main() {
// My fisrt C++ program!
cout << "Hello C++!" << '\n';
return 0;
}

第 1 行: 導入 <iostream> 這個標準函式庫

#include <iostream>

標準函式庫是 C++ 內建的函式庫,裡面有事先寫好的程式碼。
使用 #include 這個關鍵字可以將函式庫導入我們的程式中,<iostream> 則是一個函式庫的名稱,是專門處理程式的輸入 (input) 以及輸出 (output) 的函式庫。
關於輸入和輸出之後會有更詳細的介紹。

第 3 行: 使用標準函式庫

using namespace std;

std 是 C++ 標準函式庫的代號 (standard library)。這一行是在告訴電腦,我們想在程式中使用 C++ 標準函式庫。

第 3 行: 空行
空行會被電腦自動跳過。使用空行的目的是為了讓程式碼更好讀 (對人類來說)。

第 4 ~ 8 行: 告訴電腦具體要執行哪些命令

int main() { }

這段程式包含四個部分:
1. int: 這個之後會再介紹,先不用管它。
2. main: 電腦拿到程式碼以後,會找到 main 的所在位置,從 main 中的第一行程式開始執行,直到最後一行
3. (): 這個之後會再介紹,先不用管它。
4. {}: 用大括號把所有要電腦執行的命令都涵蓋在裡面,這部分是 C++ 程式的主體。

現在,我們深入 main 的大括號中來了解這支程式命令電腦做了什麼事情。

第 5 行: 註解
註解跟空行一樣,會被電腦自動跳過。// 後面的所有內容都會被電腦忽略,可以讓程式設計師做一些紀錄,方便自己 (或同事) 日後了解這段程式在幹嘛。
註解還有另一種形式: /* 註解的內容 */,這種寫法的好處是註解的內容可以行跨多行,如下面所示:

/*
第一行註解
第二行註解
第三行註解
*/


第 6 行: 把 "Hello C++!" 印到螢幕上

cout << "Hello C++!" << '\n';

"" 框住的內容稱為字串 (string),就是一般文字的意思,可以用來撰寫你想要印到螢幕上的內容。
cout 是 <iostream> 函式庫中用來處理輸出的酷東西,需要在 cout 和你想印到螢幕上的資料中間加上 「<<」。
你可以想像成是資料從程式「流」進 cout,進而被印在螢幕上,所以 << 其實是象形文字。

'\n' 是換行符號的意思,cout 遇到 '\n' 後會換到一下行。

C++ 的程式必須以分號「;」作為結尾 (新手會很常忘記)。

每一行以分號結尾的程式又稱為陳述 (statement),電腦會以陳述為單位,一行一行執行 main 裡面的程式。

!! 小試身手 !!
試著把分號拿掉,看看 C++ shell 的視窗會顯示什麼錯誤。


第 7 行: 終止程式

return 0;

return 表示程式結束完畢了,如果你把程式寫在 return 後的話,它們就不會被執行到。

!! 小試身手 !!
在 return 0; 前後分別列印一些文字,觀察程式的輸出會長什麼樣子。
注意: C++ shell 是外國網站,沒有針對中文輸出做處理 (會印出亂碼),所以用 cout 印出文字的時候,請使用英文 (順便練習一下英文~)。


關鍵字 (保留字)

程式語言會定義許多關鍵字 (保留字) 來代表某些意思,像是 include、using、main、return ,都是屬於關鍵字。是 C++ 所定義出來,具有特殊意義的詞彙。

至於 iostream 和 cout,則是標準函式庫裡面的東西,並不屬於關鍵字。

C++ 標準函式庫是一堆由別的工程師利用 C++ 所設計出來供大家使用的程式碼,如果不需要的話也可以不使用。但因為實在太好用了,所以通常在開發軟體的時候都會使用標準函式庫。


撰寫程式碼的風格

可以發現範例程式中,有的地方會空行,有的地方會縮排,這種撰寫程式碼的風格叫作 coding style。良好的 coding style 會讓程式碼更容易閱讀,但這個東西並沒有統一的格式,每個社群和公司的習慣都不太一樣。

可以將後續其他範例程式的寫法當成參考,也可以依照你自己的習慣去撰寫。

#include <iostream>
using namespace std;

int main() {
// My fisrt C++ program!
cout << "Hello C++!" << '\n';
return 0;
}


結語

以下是一支 C++ 程式的基本架構:
1. 可以從 (標準) 函式庫使用其他人撰寫好的程式。
2. 使用 int main() { } 來函概要電腦執行的命令。
3. 電腦一看到 return 0; 就會停止執行程式。

此外,我們也介紹了以下概念:
1. 註解 (comment): 會被電腦忽略,可以用來做紀錄。
2. 陳述 (statement): 以分號結尾,可以分成多行來撰寫。
3. 可以將文字放在引號""內做為自串,用 cout 印到螢幕上;'\n' 可以用來換行。

1會員
12內容數
程式設計 & 電腦系統 & 系統軟體
留言0
查看全部
發表第一個留言支持創作者!