--- tags: CS50 --- # CS50 x 2021 week 2 筆記 這週一開始在介紹 debugger 與一些 CS50 線上IDE 的其他功能。 到了後面開始說明 C 語言的 array、string,還有 command line arguments、exit status,以及介紹當週的作業:readability 與 cryptography。 ## Array C 的整數陣列宣告: ```c= int scores[3]; ``` 代表 `scores` 是一個長度為 `3` 的 `整數` 陣列。 ```c= scores[0] = 72; scores[1] = 73; socres[2] = 33; ``` 因為陣列是連續儲存的,因此必須**從 0 開始**,不然會浪費 0 這個位置的空間。 ### Constant variable 在宣告變數之前加上 `const` 關鍵字,就可以讓這個變數無法被改變,例如: ```c const int TOTAL = 3; ``` 在撰寫上會習慣將無法改變的常數名稱以全部大寫表示,方便區分。 ### Array as function input 在 C 語言中,在函式裡輸入陣列的方法: ```c=17 float average(int length, int array[]) { // Ho ho something ... } ``` ## String 正常而言,C 語言並沒有 string 型別,只有 char,且只能儲存一個字,string 是由 `<cs50.h>` 提供。 雖然 string 是由外部套件提供,但是其原理就如同 array,只是裡面裝的是 char。 在字串內,會使用 `\0` (null) 來代表一個字串的結束。 ## Command line arguments 如果想要直接在執行程式時輸入指令的話,可以使用這個方法: ```c= #include <stdio.h> #include <cs50.h> int main(int argc, string argv[]) { // 執行程式本身也算一個 argc // 因此判斷為 2,代表只有一個額外參數 (加上執行程式本身) if (argc == 2) { // Ho ho something... } else { // Hey hey something... } } ``` 如此一來,便可以在執行程式之前輸入其他東西 ```shell= ./argv Johnney ``` ## Exit status 大部分的情況,main 函式都會預設回傳 int 而非 void,那是為了表達程式執行結果的狀態碼。 程式沒有問題的情況下,main 可以回傳 0;若真的在執行過程中出現問題,main 就會回傳 1。 若要得知程式執行後的狀態碼,可以在程式結束後輸入 `echo $?` 指令。
×
Sign in
Email
Password
Forgot password
or
By clicking below, you agree to our
terms of service
.
Sign in via Facebook
Sign in via Twitter
Sign in via GitHub
Sign in via Dropbox
Sign in with Wallet
Wallet (
)
Connect another wallet
New to HackMD?
Sign up