電腦科學概論筆記2 迴圈


無窮迴圈
若不小心讓程式一直保持符合條件情況下(例如:總是條件是 true),則程式迴圈會無止盡的執行下去無法跳出迴圈。

// 1 代表 true 的意思
while(1) {
// 無窮迴圈,因為沒有條件的更新,持續執行不會跳出,有可能會造成資源消耗過多電腦當機
}
switch 判斷
當我們有比較複雜的 if 邏輯需要判斷時,可以使用 switch 進行分支處理的工作,可以讓程式更為簡潔。

switch (運算式) {
case value_1:
// 執行程式區塊
// 記得要 break 不然會往下執行下去
break;
case value_2:
// 執行程式區塊
break;
case value_3:
// 執行程式區塊
break;
default:
// 都沒有符合執行區塊
}
陣列(array)概論
前面我們已經有認識了字串是字元的多個集合體,其實就已經揭露了陣列這個在大量變數和資料時好用的資料結構。

在 C 語言中對於陣列要求比較嚴格,陣列內元素必須為相同資料型別(其他的程式語言有些可以不是同樣的資料型別)。

是說為什麼會需要陣列呢?試想今天若想存一組樂透號碼,宣告整數變數就要宣告好多個。若是今天有了陣列就可以宣告一個整數陣列把整數元素存入來進行操作。

int var1 = 1;
int var2 = 3;
int var3 = 7;
陣列:

int numbers[3] = {1, 3, 7};
在 C 語言中指標是個特別的變數,負責儲存記憶體位置(memory address)。

聽起來有點抽象?

首先,我們先複習一下:變數是將資料暫存在記憶體的地方,也就是說變數會被系統分配到一個記憶體空間來儲存資料,而那個空間的位址就是記憶體位址。

以下圖解說明,Var 為一個一般變數,ptr 為一個指標變數,負責存 Var 的記憶體位址,當然 ptr 自己也有自己的記憶體位址。當要取 Var 值時,可以透過 *ptr 取值。

指標變數:

// 宣告一個指標變數(和取值的 意義不同,這邊是代表宣告 ptr 是一個指標變數)
char
ptr;

include <stdio.h>

int main() {
// 宣告一個指標變數 ptr, char ptr 和 char ptr; 意思相同
char ptr;
char x = 3;
// & 運算子為取出變數的記憶體位址,指標 ptr 變數儲存的是 x 的記憶體位址
ptr = &x;
//
ptr 為取出指標 ptr 指到記憶體位址的 '值'
// ptr 和宣告變數 char ptr 兩者的 意義不同。前者為取值
printf("%d \n",
ptr);
}







你可能感興趣的文章

刻意練習的方法

刻意練習的方法

javascript razor : Large File Upload

javascript razor : Large File Upload

React 五子棋概念

React 五子棋概念






留言討論