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

更新於 發佈於 閱讀時間約 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' 可以用來換行。

avatar-img
3會員
14內容數
程式設計 & 電腦系統 & 系統軟體
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
鏟薯員的窩 的其他內容
這個系列是專門寫給 0 程式設計經驗的初學者的 C++ 教學, 無需架設環境,直接開始無痛入手 C++ ~
這個系列是專門寫給 0 程式設計經驗的初學者的 C++ 教學, 無需架設環境,直接開始無痛入手 C++ ~
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
“所有人寫的程式會變成指令 每一道指令是由CPU執行 而CPU所能理解的指令類型有限”
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
親愛的讀者 感謝你提出這個問題。這是一個現代社會中很常見且重要的疑惑。隨著科技的迅猛發展,程式設計似乎成了人人必備的技能,讓許多人產生了焦慮和壓力。讓我們從多個角度深入探討這個問題,希望能為你解答心中的疑惑,並提供實用的建議。
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
C#是一種開源、跨平台、面向對象的編程語言,具有類型安全、泛型、模式匹配等特性。廣泛應用於桌面和Web應用程序、遊戲開發、移動應用、雲計算等領域。全球數十萬家公司像微軟、Unity Technologies、Stack Overflow等使用C#支持其業務。C#還提供豐富的進階學習資源和主題。
Thumbnail
程式設計中不可或缺的一部分 介面是使用者與程式互動的媒介,因此介面的設計會影響使用者的體驗和感受。一個清晰明白、易懂的介面,可以讓使用者輕鬆地使用程式,並獲得良好的使用體驗。 需要與程式設計師密切溝通 設計師需要了解程式的功能和需求,並根據使用者的習慣和需求進行設計。設計師和程式設計師之間的溝
Thumbnail
替產業做設計 有人要我談程式設計,那我就稍微談一下。我從事的大都是產業的工作,所以我們也從如何替產業做設計來談起。基本上,每個產業都會有自己的作業流程,大同小異。但是基礎來做都是一樣的,都會有客戶、物料、產品、供應商、員工等資料。不同的是,由於企業型態的不同,他們每個人有不同的作業流程。這個作業流
Thumbnail
關於程式語言的學習,只要掌握住幾個基本特性要熟悉幾種程式語言也不困難,這三個基本特性就是…
Thumbnail
介紹C++ 語法 資料型態,架構說明 程式語言為人類與電腦溝通的工具 程式設計流程: 定義問題 -> 問題分析 -> 撰寫演算法 ->程式撰寫 -> 程式執行及維護
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
這篇內容,將會講解什麼是函式,以及與函式相關的知識。包括函式的簡介、Runtime Function、自訂函式、Script Function 腳本函式、Method 方法。
“所有人寫的程式會變成指令 每一道指令是由CPU執行 而CPU所能理解的指令類型有限”
Thumbnail
如果你也是從事軟體相關工作的人,一定會遭遇突然需要你去學習一套你不熟悉的程式語言狀況吧,此時你會怎麼做呢? 是趕快去買書來看嗎? 還是趕快找一門程式課來上? 又或者乾脆去找會的同事來教學?
Thumbnail
親愛的讀者 感謝你提出這個問題。這是一個現代社會中很常見且重要的疑惑。隨著科技的迅猛發展,程式設計似乎成了人人必備的技能,讓許多人產生了焦慮和壓力。讓我們從多個角度深入探討這個問題,希望能為你解答心中的疑惑,並提供實用的建議。
Thumbnail
C#程式由一或多個檔案組成,包含命名空間、類別、結構、介面、列舉和委派等型別。Main方法是C#應用程式的進入點。在C#中,註解用於在程式碼中添加說明,有單行和多行兩種類型。變數的定義需要指定變數的類型和名稱,可以一次為多個變數賦值。
Thumbnail
C#是一種開源、跨平台、面向對象的編程語言,具有類型安全、泛型、模式匹配等特性。廣泛應用於桌面和Web應用程序、遊戲開發、移動應用、雲計算等領域。全球數十萬家公司像微軟、Unity Technologies、Stack Overflow等使用C#支持其業務。C#還提供豐富的進階學習資源和主題。
Thumbnail
程式設計中不可或缺的一部分 介面是使用者與程式互動的媒介,因此介面的設計會影響使用者的體驗和感受。一個清晰明白、易懂的介面,可以讓使用者輕鬆地使用程式,並獲得良好的使用體驗。 需要與程式設計師密切溝通 設計師需要了解程式的功能和需求,並根據使用者的習慣和需求進行設計。設計師和程式設計師之間的溝
Thumbnail
替產業做設計 有人要我談程式設計,那我就稍微談一下。我從事的大都是產業的工作,所以我們也從如何替產業做設計來談起。基本上,每個產業都會有自己的作業流程,大同小異。但是基礎來做都是一樣的,都會有客戶、物料、產品、供應商、員工等資料。不同的是,由於企業型態的不同,他們每個人有不同的作業流程。這個作業流
Thumbnail
關於程式語言的學習,只要掌握住幾個基本特性要熟悉幾種程式語言也不困難,這三個基本特性就是…
Thumbnail
介紹C++ 語法 資料型態,架構說明 程式語言為人類與電腦溝通的工具 程式設計流程: 定義問題 -> 問題分析 -> 撰寫演算法 ->程式撰寫 -> 程式執行及維護