Skip to content

[C++] 基本教學 01: 資料型態

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


Read More

Tags:

Leave a Reply