Last Updated on 2021-05-03 by Clay
C++ 是許多人所學的第一個程式語言,也是許多資訊背景人員對於程式設計最初的印象。我也幾乎是這個樣子,我在高中時接觸了 VB,但學得很淺,只知道了幾個程式的基本概念,是到後來上了大學,記得是大二的基礎程式設計課程吧,這才學習了 C++。
C++ 是我第一個比較熟悉的語言,不過後來學習了 C# 跟 Python,又一頭栽入了研究所的機器學習領域,就越來越少寫 C++ 了。
本著複習的心態、加上開始找工作後又有了需要練習白板題的需求,於是再次重新複習起了 C++,便順手紀錄了幾個篇章的基本語法。
我目前所寫的記錄教學文章,預計有以下章節:
- 資料型態
- 加減乘除
- 資料輸入、輸出
- 迴圈、條件判斷
- 檔案讀寫
- 指針
- 函式
這會是比較簡略的教學文件,不過我的目的是快速複習一遍,並很快地去複習資料結構和演算法,所以我認為,這樣的複習其實就已經很足夠了。
那麼以下,就來簡單介紹 C++ 當中有著的不同資料型態(data type)吧!
如果需要安裝編譯器的教學,可以參考以下這篇:[Linux][C++] 如何編譯並執行一個 C++ 程式
資料型態介紹
不同用途的資料會有著不同的資料型態,比方說數值型態的資料大致上可以分成『整數』(Integer)以及『浮點數』(Float),而整數和浮點數最大的差異便是是否存在著小數。
另外若為文字資料,則是使用字元(Character)、或是使用字串(String)來儲存。
以下來看個簡單的範例(要使用 string 型態需要先 include):
#include <iostream> #include <string> using namespace std; int main() { int a = 5; float b = 3.3; char c = 'a'; string d = "test"; cout << "int: " << a << endl; cout << "float: " << b << endl; cout << "char: " << c << endl; cout << "string: " << d << endl; return 0; }
Output:
int: 5
float: 3.3
char: a
string: test
除此之外,C++ 中有著所謂的布林值(bool),基本上只佔一位元組,只有 1 或 0,分別代表著 true 及 false。
#include <iostream> #include <string> using namespace std; int main() { cout << "Size: " << sizeof(bool) << endl; cout << "true: " << true << endl; cout << "false: " << false << endl; return 0; }
Output:
Size: 1
true: 1
false: 0
可以看到,只要是 bool 資料型態都只佔 1 位元組,而 true 代表著 1、false 代表著 0。
除此之外,C++ 還有著像是陣列(Array)這樣的結構,陣列可以一口氣建立多個同樣資料型態的元素,並能夠隨時取出。
#include <iostream> using namespace std; int main() { char c_arr[3] = {'a', 'b', 'c'}; int i_arr[3] = {1, 2, 3}; cout << c_arr[0] << endl; cout << i_arr[2] << endl; return 0; }
Output:
a
3
實際上,C++ 的資料型態劃分得非常地細,所使用的記憶體也不盡相同,甚至在不同編譯器還會有著不同記憶體大小,所以在使用上需要謹慎。
除此之外,我們甚至可以用 typedef
來定義自己所需求的資料型態,可說資料型態是相當博大精深的。
References
- https://www.geeksforgeeks.org/c-data-types/
- https://www.tutorialspoint.com/cplusplus/cpp_data_types.htm