---
# System prepended metadata

title: C++ 程式語言學習筆記

---

# C++ 程式語言學習筆記
## 一.變數型態


| 常用型態      | 意義               |          範圍          |
|:------------- |:------------------ |:----------------------:|
| int           | 整數               | -2147483648~2147483647 |
| long long int | 長整數             |      -263 ~ 263-1      |
| float         | 單精度浮點數(小數) | ±1.5x10−45 ~ ±3.4x1038 |
| double        | 雙精度浮點數(小數) |±5.0×10−324 ~ ±1.7×10308          |
| char          | 字元               |   ‘A’                     |
| string        | 字串               |   “Hello”                     |
| bool          | 布林               |  true、false                      |

## 二.運算符

* 1.***關係運算子:***
     

| 關係運算子 | 意義     | 備註      |
| -------- | -------- | -------- |
| ==       | 等於      | =是指派，==是判斷是否相等     |
| !=       | 不等於    | 
| >        | 大於      |
| >=       | 大於等於   |
| <        | 小於      |
| <=       | 小於等於   |

---

* 2.***邏輯運算子***


| 邏輯運算子 | 意義 |
| -------- | -------- |
| &&     | and     |
|    II    | or       |
|!       | not      |

---
* 3.***賦值運算符***
     * `x + = 4；`
        * 等於x = x + 4
    * `x ++；`
    前序
    * `x = 5；`
     `y = ++ x；`
        * x為6，y為6
    後序
    * `x = 5；`
     `y = x ++；`
        * x為6，y為5


## 三.條件式
*  ***if/else***
     *  `if(7 > 4) {
   cout << "Yes"；
}`
         *  條件為真，執行大括號中的語句。
    *    `if(7 < 4) {
   cout << "Yes"；
}`
         * 條件為假，大括號中的語句將不執行，**不會打印任何內容。**
```clike=
 int mark = 90;
 
 if (mark < 50) {
 cout << "You failed." << endl;
 }
 
else {
cout << "You passed." << endl;
}
```
-如果結果為真，則將執行if語句中的代碼。
-如果結果為假，==則將**執行else語句**中的代碼。==
```clike=
 int mark = 100;
 if (mark >= 50) {
 cout << "You passed." << endl;
 
  if (mark == 100) {
  cout <<"Perfect!" << endl;
  }
  }
  
  else {
  cout << "You failed." << endl;
  }
  ```
  
-可以在一個if語句中包含無限多組**嵌套if**語句。
          
# 四.迴圈
*    1.***while迴圈***
        *    滿足特定條件時重複執行一組語句。直到條件變為**假**時，
            ==程序移至**緊隨循環**的那一行。==
```clike=
int num=0;
while(num < 10){
cout<< num <<endl；
num++；
}//重複迴圈到條件為假(a>10，迴圈重複十次)
```
---
 *  2.***for循環***
    * 條件評估，如果條件為**真**，則執行循環主體。
接下來遞增語句將**更新循環**。
然後，循環的主體**重複自身**，==僅在條件變為**假**時才停止。== 
```clike=
for(int num=0；num < 10；num++){
cout<< num <<endl；
}//重複迴圈到條件為假(a>10，迴圈重複十次)
```
---
* 3.***do...while循環***
    * 與for和while循環不同，for和while循環在**循環的頂部**測試循環條件，而do ... while循環在**循環的底部**檢查其條件。
==如果條件評估為**假**，則do中的語句**仍運行一次**。== 
```clike=
int num=0;
    do{
        cout<< "Number:" << num <<endl;
        num++;
    }while(num<10);//重複迴圈到條件為假(a>10，迴圈重複十次)
```
---
* 4.***switch聲明***
    * **switch**語句測試一個變量對值，以確定它是否等於任何值。
    Switch對變數求值以確定它是否等於case語句中的值。
    如果找到匹配的值，則執行語句。
 ```c++=
 int age=18
  switch(age) {
  
 case 16:
 cout << "you can drive a car" << endl;
 break;

 case 18: 
 cout << "buy a lottery ticket" << endl;
 break;

 case 21:
 cout << "buy some beer" << endl;
 break;
 
 default:
 cout<< "This is the default case."endl;
//在Switchg聲明中，endl可以省略
//作為switch語句的最後一種情況，default不需要break語句。
}
```
-**default**語句的作用是終止**switch**語句。
-在變量等於**case**語句中的值的情況下，此語句之後的語句將繼續執行，直到遇到**break**語句為止。換句話說，即使不使用**break**語句，所有語句也會執行，==**即使那些與表達式不匹配的語句也是如此。**== 所有其他語句陳述被打印出來。這種類型的行為稱為***fall-through***

# 五.陣列
* ***陣列宣告***
    * 陣列是一個 ==**用來存儲數據的集合**==，但一個陣列只能儲存一種類型的變量。聲明一個迴圈來存儲所有值，而不是聲明多個變量並存儲單個值。==~*聲明迴圈時，請指定其元素類型，以及要容納的元素數量。~==
```clike=
int arr[5];//變量arr被聲明為五個整數值的迴圈,元素數量在方括號中指定


int arr[5]={1,2,3,4,5};//通過指定迴圈包含的值來對其進行初始化
```
-大括號{}之間的值的數量不得超過方括號[]中聲明的元素的數量。
```clike=
int arr[5]={1,2,3,4,5};

cout<<arr[3]<<endl;//輸出4
```
-迴圈中的每個元素或成員都有一個索引，可以精確定位元素的特定位置。 迴圈的 ==**第一個成員的索引為0**==，第二個成員的索引為1，以此類推
```clike=
int arr[]={1,2,3,4,5,6};如果省略迴圈的大小，則會創建一個大小足以容納初始化的迴圈
```
-如果省略迴圈的大小，則會創建一個大小足以容納初始化的迴圈

```clike=
int arr[5]={1,2,3,4,5};
    arr[3]=42;//迴圈的第三個元素賦值42。
```
-索引號也可用於為元素分配新值。
* ***循環陣列***
    聲明一個數組存儲5個整數，並用來為每個元素分配一個值
    ``` c++=
    int myarr[5];
    for(int x= 0; x < 5; x++ ){
    myarr[x]=
    }
    ```
* ***多維陣列***
    * 指一個陣列可以容納一個到多個陣列(無限多組，==**三維以上很難管理**==)
    * 例如:
    ```c++=
    int x [3][4]//可以創建出3行4列的陣列
    
    int y [2][3][2] = {{{1,2},{3,4},{5,6}},{{7,8},{9,10},{11,12}}}
    //三維陣列
    ```
* ***指針***
    * 每一個變量都會有一個