# 變數 輸入 基本運算
## 9/20 c++班
---
# 變數
變數是可以儲存值的容器。
裡面的值分成各種類型。
---
## 宣告
要使用一個變數,就要先宣告變數。
宣告方法如下:
```
變數類型 變數名稱;
```
變數類型等一下會講。
----
## 指派
要將變數內存入值,就要用指派的方法
```c++
a = 10;
```
這樣a裡面存的值就會是10。
在宣告的時候,也可以在變數名稱後面直接指派。
----
## 存取
要存取變數裡面的值很簡單,只要打出變數的名稱,不要跟其他東西連在一起,電腦就會把那個位置帶入變數的值。
```c++
cout << a;
```
----
## 複製
複製和指派很像,都是將值存入變數中。
不過複製是把一個變數的值複製進另一個變數中。
像是:
```c++
a = b;
```
---
# 變數類型
變數有很多種類型,每種都只能裝自己類型的值。
變數類型最常見的是數字和文字。
----
## 整數
整數類別的變數可以儲存整數。
大小由小到大分別是 short, int, long long。
其中 int 和 long long 比較常用。
`int a = 10`代表宣告一個變數a,他的類別為int,內容物是10
----
## 無號整數
無號整數和整數大小一樣,不過最小值是0,最大值是相對的整數最大值的兩倍加一。
常用有 unsigned 和 unsigned long long 。
對應到 int (又稱做 signed )和 long long 。
----
## 浮點數
浮點數代表著有小數的數字。
常用的有float、double兩種
double是競程最常用的,而float的精度太低,
不過大小較小,有些實作時會用到。
----
## 字元
字元類型可以儲存一個字,類型叫char。
前一節課講的跳脫字元算是單一個字元。
字元要用兩個單引號''包起來。
`char c = 'x'`代表宣告一個字元c,內容物是x
----
## 字串
字串內可以儲存許多的字元,叫做string。
一般字串要用兩個雙引號""包起來。
`string s = "hello world"`
----
## 布林值
布林值只有兩個,真true和偽false。
布林值的類型叫bool。
這個的用途之後的課會講。
---
## 型別轉換
當指派或複製給一個變數時,有時候會有型別不合的問題,這時候就需要型別轉換。
型別轉換方法如下
```c++
double x = 3.3;
int a = (int)x;
```
這樣a就會是存著數值3的int。
注意:字元轉換成數字是以ASCII表來轉換。
----
## 自動型別轉換
因為有些的直可以直接互通,問題不多,所以電腦可以幫忙轉換。
像是浮點數、各種整數、無號數都可以互通。
不過注意不要超過範圍、小數變整數會向0取整。
數字和字元運算時,字元會自動轉換成整數。
---
# 輸入
----
在c++中,要輸入要使用cin
像是
```c++
cin>>a>>b;
```
這樣會把第一段的指派給a,第一、二個段的給b。
----
## 輸入分段
通常,輸入是由空格來分段。
但如果是字元讀取,則只會拿走單一個,
後面的還可以繼續讀取。
----
## 型別不合
如果輸入跟變數型別不合,就會給變數指派那個型別的預設值。
如果是數字過大或過小,則會停在最大、最小值。
---
# 四則運算
----
## 加減乘 + - *
和數學的加減乘一樣。
會輸出成兩個之中精準度較高的類型。
----
## 除法 /
如果兩個都是整數,則輸出整數。
其中有浮點數則會輸出浮點數。
除法輸出的正負依兩個相乘的正負而定。
整數都是向0取整。
----
## 模除 %
模除就像是國小數學的餘數。
輸出會介於除數和-除數之間。
模除輸出的正負依被除數的正負而定。
----
## 優先度
四則運算的優先度都和數學一樣。
小括號內最先,再來是乘除和模除,最後是加減。
{"title":"變數 輸入 基本運算","description":"變數是程式中很重要的一部分,所有要儲存的東西都存在變數中。","contributors":"[{\"id\":\"00ad9127-6491-4b3d-829b-7847a217f8e5\",\"add\":2077,\"del\":297}]","showTags":"true"}