# 1 - 2 資料型態與變數 ###### tags: `競程學習筆記` `競筆一` ## 常見資料型態 ### int - 整數,同時也是最常見的整數型態,可以寫作 signed - 範圍 $-2^{31}$ ~ $2^{31}-1$ (實際值 $2147483647$ ) - 大小 4 Bytes - 如果是 $2147483647+1$ 會變成 $-2147483648$ (可以想像成一個環),此現象稱為溢位(overflow) ### long long - 長整數,顧名思義它的範圍比較大 - 範圍 $-2^{63}$ ~ $2^{63}-1$ - 大小 8 Bytes - 在寫很多題目常會沒注意到 int 的運算範圍而溢位,要記得換成 long long ### char - 字元,"以整數儲存" - 範圍 $-128$ ~ $127$ - 大小 1 Byte - 利用 ASCII 碼將數字與字元互相轉換,詳見 [ASCII Table](https://asciitable.com "ASCII Table") - 字元需要用單引號 '' 括起來 - 將字元轉換成整數 ```cpp= int a=int('a'); // a=97 ``` - 將整數轉換成字元 ```cpp= char c=char(97); // c='a' ``` ### float 和 double - 浮點數和倍精度浮點數,一起講是因為大部分都用 double - 差別只在於 double 可以儲存比較多位 - 儲存浮點數時會產生誤差 ### string - 字串 - 須引入標頭檔 \<string> - 字串需要用雙引號 "" 括起來 ### bool - 布林值,只有 0 和 1 - 0 代表 False,1 代表 True ## 變數 就是可以更改其值的資料型態,不一定只有整數 ### 變數宣告 ```cpp= int a=1; long long b=10000000000; char c='k'; float d=0.1; double e=0.00000001; string f="Hello"; bool g=0; ``` 在要宣告的變數前寫上它的資料型態 在宣告變數時,若沒有將其初始化,它會被給予一個隨機值 所以大家要記得初始化哦~ --- 與變數相反的就是常數,意即不變的資料(只能對他做最初始的設定) 很常用在題目給定的最大值 宣告方法就是在前面加上 const ### 常數宣告 ```cpp= const double pi=3.14; ``` ### 變數賦值 在程式語言中,一個等號 = 存在的意義並不是相等 他是一個賦值運算子,用來賦予他左邊變數一個值 舉個例子: ```cpp= int a=1; a=2; a=3; // a=3 ``` 這三行程式碼,分別讓 a 初始為 1,然後將 2 賦予 a,最後將 3 賦予 a 因此最後 a 就是 3 除了一個一個賦值,我們也可以一次將全部變數一起設成同樣的值: ```cpp= int a, b, c; a=b=c=1; ``` 如此一來,a、b、c 就都是 1 了!