【C++ 筆記】簡介 / 環境安裝 / 基本語法 - part 1

很感謝你點進來這篇文章。

你好,我並不是什麼 C++、程式語言的專家,所以本文若有些錯誤麻煩請各位鞭大力一點,我極需各位的指正及指導!!本系列文章的性質主要以詼諧的口吻,輕鬆的自學程式語言,如果你喜歡,麻煩留言說聲文章讚讚吧!

簡介(Introduction)

C++ 是一種高階語言,它是由 Bjarne Stroustrup(比雅尼·史特勞斯特魯普
)於 1979 年在貝爾實驗室開始設計和開發的。C++ 進一步擴充並完善了 C 語言,是一種物件導向的程式設計語言。C++ 可運作於多種平台上,如 Windows、MAC 作業系統以及 UNIX 的各種版本。

而 Bjarne Stroustrup 又被稱為是 C++ 之父。

以上是 C++ 的簡短介紹,接著讓我們進入環境安裝的部分。

環境安裝(Environment)

Visual Studio:目前普遍認為在 C++ 編寫上最方便的編輯器軟體。

另外推薦:Dev-C++Code::Blocks 兩大軟體,其中最推薦使用的是 Code::Blocks,因為除了是 APCS 指定軟體以外,也是接下來由筆者制定講義之一系列當中最常使用的軟體。

雖說 Visual Studio 算是蠻多開發者們所使用的軟體之一,但是因為這個軟體對於 CPU、記憶體的耗損會有很大的影響,在教學上並不方便使用。

那另外也有線上編譯器可供我們使用,像是這個網站:https://www.onlinegdb.com/online_c++_compiler

線上編譯器的好處是可以不用開啟軟體就直接寫程式,但缺點是並不適合拿來開發,如果你只是想要學學 C++ 而已也就還好。

那接下來讓我們繼續環境安裝的部分:

Code::Blocks

image

首先我們先到這個網站:https://www.codeblocks.org/downloads/binaries/

在這邊就依據你個人的作業系統來進行下載安裝,像我個人的作業系統就是使用 windows 11,那麼就直接到下面的 windows 介面來。

image

那 windows 當然也有分 32 bit、64 bit,不過現今的電腦硬體主流大多都是 64 bit 而非 32 bit,如果要下載的話,那麼正常來說點紅圈圈起來的地方即可。

image

當我們點進來以後,那麼 SOURCEFORGE 這個網站就會自動幫我們移轉到下載的地方,大約等待五秒即可開始下載。

下載好,打開後會像下面這張圖所示:

image

直接點下一步:

image

再點 I Agree:

image

這邊設定不用管他,直接下一步。

image

如果你對路徑有異議的話,當然可以更改一下,不過本人建議維持原路徑還是好一點,總之下一步(install)。

image

然後接下來就直接進入到安裝過程了。

codeblocks6

之後因為我這個軟體早就安裝好了,所以打開後沒跳出這個畫面,稍微借用一下別人的圖XD

上面這張圖我們點一下那個黑字,然後點右邊的 Set as default 即可。

codeblocks7

點 OK 之後會跳出如上圖,同樣照著圖片的點即可,這個意思是說要不要將所有 C/C++ 的檔案與 Code::Blocks 連結,也就是如果有個檔名叫做 abc.cpp (.cpp 為 C++ 副檔名),你雙擊點開以後也會順帶幫你打開 Code::Blocks 進去編輯。

image

打開以後呢,你會發現,欸?怎麼都是英文?我英文文盲啊!

從古至今有句話是這麼說的:學程式之前,英文先學好啊! 一 胡適

胡適:我沒說過。

image

不鬧了,反正如果我們要新增一個空白檔案的話,那麼請來到軟體的左上角 [file] -> [Empty file] 打開一個空檔案。

image

然後就有一個檔案叫做 Untitled1,也是我們熟悉的”未命名”檔案。

此時我們按下 ctrl + S 快捷鍵(表示儲存檔案),會跳出檔案總管跟你說:「哈囉,請問你的文件要放在哪裡呢?」

image

人性是懶惰的,我相信你一定會直接按下右下角的「存檔(S)」,然後接下來就是一大堆的 Untitled12345678.c!!

阿各位讀者,修但幾勒,在這邊有個重點要提醒您:副檔名記得將 .c 改成 .cpp 唷!這樣才是 C++ 的格式,不然到時候跑 C++ 就 GG 了。

存好檔以後,也讓我們進入到下一個章節了:

C++ 基本語法

首先來介紹 C++ 的基本架構:

image

在這之前,你可能會疑惑,為什麼你的字體那麼大?我的字體好小啊,眼睛快脫窗了!!

沒關係,請你按住你的 ctrl 鍵不要放,然後將你的滑鼠滾輪向上滑,就能達到跟我一樣的效果了。

如果我們要執行程式碼的話,可以直接按下你鍵盤上的 F9 按鈕,直接編譯執行程式碼。或是你懶得按,只想動滑鼠就請看下圖:

image

不過值得注意的是,這個 F9 按鈕你按一次就行了,前提是你沒有改動程式碼的話,還是按下普通的綠色三角形按鈕即可,快捷鍵是 ctrl+F10。(以上快捷鍵僅限 Code::Blocks 軟體)

好的,首先讓我們一行一行慢慢介紹:

  1. 第一行:引入標頭檔。

標頭檔的副檔名叫做 .h,那第一行完整的標頭檔就叫做 iostream.h,不過第一行它卻不是寫 #include的,為什麼?(有關於這部分有興趣自己查看看吧 :))另外這個標頭檔的作用是管理「輸出」、「輸入」的,i = input、o = output、stream = 串流。

總之標頭檔你就把它想像成是 C++ 當中能夠發揮功能的零件吧!

  1. 第二行:using namespace std; 告訴編譯器使用 std 命名空間。

好的,在說明這個之前,我先請各位看看沒有使用命名空間的寫法:

image

有看出差別了嗎?前一個圖跟上圖比較,上圖刪除了命名空間的指令,並在 cout 前面加上了 std::。

這個 std 即為 C++ 當中的標準函式庫(Standard Library),那函式庫這個東西就裝了非常多的標頭檔在裡面,所以函式庫就像是一個圖書館,裡面裝了很多書(標頭檔)在裡面。

那為什麼需要命名空間這個東西呢?其實很簡單,就一句話而已:太麻煩啦!

不過你想想,每次打指令前都要打上 std:: 是不是挺煩的?而我們在第二行直接宣告命名空間,告訴編譯器說我們要使用 std 命名空間,就能夠直接省略這個步驟。

而命名空間比較正式的說法是這樣:

命名空間的作用是可以區分不同函式庫中相同名稱的函式。

  1. 第四行:int main() 為程式一開始執行的地方。

int main() {} 這個東西是一個函式,至於函式是什麼各位目前還不太需要了解,只需知道他是「主」函式,為 C++ 程式碼執行程式碼的中心。

  1. 第五行:cout << “Hello World”; 表示在終端上輸出

cout,先念 c、再念 out,這個就是表示在終端(就是那個命令提示字元的視窗)上進行輸出的動作。輸出就是把文字顯示在終端上。

執行後圖如下:

image

而在這邊我想要提醒各位一個非常重要的地方是:

C / C++ 每一條語句的最後面請加上分號!!
C / C++ 每一條語句的最後面請加上分號!!
C / C++ 每一條語句的最後面請加上分號!!

因為很重要所以說三次,但是例外就是像引入標頭檔、函式這類的不用特別加上分號。

啊?你說為什麼要加上分號,沒辦法,這個就是 C / C++ 的規定,代表一個語句的結束。

  1. 第五行:return 0; 表示程式到此結束

return 0;(C++ 98 標準開始可以不用加,也就是現在你可加可不加,因為編譯器在編譯執行時會自動幫你加上去) 表示讓 int main(){} 主程式函式結束,並且回傳 0 這個值,執行後結果請看下圖:

image

阿如果我們將 return 0; 改成 return 1; 呢?

image

看起來……沒什麼變化對吧?是的沒錯~但有時候這種 return 0;、return 1; 常常會用來表示程式碼執行正確或是錯誤的訊息讓我們知道,0 表示完全沒問題,1 就是有問題。但你要注意的是 1 並不是絕對的數值。

C++ 的一些小細節

cout 時因為是輸出,所以後面要使用 <<,因為要將資料”插入”標準輸”出”流。

cin 時因為是輸入,所以後面要使用 >>,因為要將資料”提取”自標準輸”入”流。

cin 的小小例子:

1
2
3
4
5
6
7
8
9
10
#include <iostream>
using namespace std;

int main()
{
int x;
cin >> x;
cout << "The Number is : " << x;
return 1;
}

註:int x; 為一個變數。

輸出結果如下圖:

image

註解(註釋:Comment)

C++ 跟 C 的註解是一樣的:

  • // - 單行註解
  • // - 多行註解

總結(Conclusion)

C++ 基本架構:

1
2
3
4
5
6
#include <iostream>
using namespace std;
int main(){
cout << "Hello World";
return 0;
}

include <> 表示引入標頭檔

using namespace std; 表示使用命名空間 std(iosteam.h 放在 std 標準函式庫裡面,使用命名空間主要是為了節省麻煩)

int main(){} 為 C++ 當中的主要程式執行處

cout << 作為輸出,輸出於終端上。 <-> cin >> 作為輸入,從終端輸入資料。

return 0; 表示一個函式結束。(C++ 98 標準開始可以不用加,也就是現在你可加可不加,因為編譯器在編譯執行時會自動幫你加上去)

return 0;、return 1; 這樣的設計可以讓程式設計師知道程式碼錯誤還是沒錯,沒錯就是 0、有就是 1,1 值並不是絕對的。

記得,每個語句都必須加上分號!!
記得,每個語句都必須加上分號!!
記得,每個語句都必須加上分號!!

參考資料

C++基礎語法介紹 - HackMD

IT Lab艾鍗學院技術Blog: [C/C++程式] Code::Blocks 整合開發環境的安裝與使用

C++ 基本语法 | 菜鸟教程

C++ 的命名空間 | 就是愛程式

C++標準函式庫 - 維基百科,自由的百科全書

What does “<<” and “>>” mean in C++ for cout/cin? - Stack Overflow