- 當我們要去評價程式碼的品質時,我們會考慮以下元素:
- 正確性(correctness): 程式碼是否有正確的解決我們的問題
 - 設計(design): 程式碼的好壞決定於它的效率與可讀性
 - 風格(style): 程式碼在視覺上是否有良好的format
 
 - 我們的第一個 C 語言程式:
 
#include <stdio.h>
int main(void)
{
    printf("hello, world\n");
}
整合開發環境、編譯器、介面 IDEs, compilers, interfaces#
- 在執行程式前,我們必須將程式碼轉變成電腦可讀的 binary codes,也就是 0 與 1。
 - IDE(integrated development environments) 可以協助我們開發、編譯程式碼。如Visual Studio Code
 - 我們撰寫的程式碼為開源碼(source code),我們必須將他轉變成機器碼(machine code),才能被電腦執行。
 - 編譯器(compiler)是將一種語言轉變成另一種語言的程式,例如將開源碼編譯成機器碼。
 - 在 IDE 中,我們可以在一個叫作 terminal 的視窗中輸入指令。
 - terminal 提供了 command-line interface(CLI)
 - 當我們輸入 
make hello,會產生一個叫作 hello 的檔案,我們可以透過輸入 ./hello 執行它。. 代表當下的目錄,上面的指令代表我們要執行當下目錄中叫作 hello 的檔案。- hello 即是內含機器碼的檔案。
 
 - 欲刪除檔案可以用 
rm 指令。 - 輸入 
ls 列出當下目錄所包含的檔案。 - 若源碼檔經過修過,則必須重新編譯,才能對執行檔進行修改。
 
函式、引數、傳回值、變數 Functions, Arguments, Return Values, Variables#
printf("Hello, world");
- 此處,介紹一個叫作 
printf 的函數f 代表 formatted 的字串。字串是多個字元(characters)組成的字詞,在 C 中,我們需要用雙引號("")來包住它。- 括號 
() 使我們可以輸入引數,也就是 printf 函數的 input。 - 最後,我們需要分號 
;,來宣告述句的結束。 
 - 其中,函式的一種產物叫作 side effect,也就是我們可以觀察到的變化,如螢幕印出字樣,或是發出聲響。
 - 相比與 **side effects,我們也可以將函式的回傳值用於程式中,回傳值通被儲存於變數中。
 
string answer = get_string("What's your name? ");
- 此處,示範 CS50 IDE 中的一個函數。
- 這裡的 
get_string為函式,而What's your name? 為引數。 - 然後,我們可以將回傳值存入到變數中,以上例,我們可利用賦值運算子(
=)將右值(r_value)傳給左值(l_value)的answer。 - 最後,我們宣告變數的變數型別(type)。
- 如果我們嘗試將上述的變數改為其他變數型別,編譯器會顯示錯誤。
 
 
 
printf("Hello, world\n");
- 我們此處為了換行,而使用了 
escape sequence \n。