[3] 入門問題
上一節:《編寫第一個C語言程序》
修改一
我們可以對first.c進行修改,例如:
int main(){ int A = 4 + 1; return A - 3;}
運行結果是2,說明:
- C語言不僅支持加法運算,也支持減法運算
- 變數與變數、變數與常量、常量與常量一起都可以進行運算
修改二
int main(){ return 3 * 5 - (6 /2+ 3);}
運行結果是9,說明:
- 用星號「*」代表「乘號」,用「/」代表「除號」
- 四則運算順序也是「先乘除、後加減,有括弧時先算括弧內的結果」
- 多餘的空格不影響程序
修改三
int main(){ int A = 11 / 4; return A;}
運行結果是2,說明:
- 當除號左右兩邊都是整數時,除法結果是整數而不是小數。且計算結果會被取整,而非四捨五入。
修改四
int main(){ return 11 % 5;}
運行結果是1,說明:
- 用「%」符號表示「求餘數」運算,也就是說11÷5=2...1,「%」的結果就是餘數1
修改五
int main() { int A = a; return A;}
運行結果是97,說明:
- 因為計算機的硬碟、U盤、內存等只能存儲由0、1表示的內容,所以計算機存儲的文字其實就是一長串整數。然後人們又把所有的字元排了一個順序,變成了一個很長的表,小寫字母a在這張表裡的序號是97。『a在C語言的代碼里,就是整數97的另一種寫法而已。
這個字母表有一個名字,叫做ASCII(讀音)碼錶,可點擊查看完整的ASCII碼錶。ASCII碼錶包含英文鍵盤上的字元(字母、數字、符號、空格等)和一些有特別意義的信號(回車、蜂鳴、esc等),一共編排了128個元素(序號從0到127)。
世界上還有另一個更大的「字元排序表」,地球上絕大多數字母/文字(包括中文漢字)在這個表裡都有相應的序號,這個巨型字母表叫做unicode。不幸的是,C語言太古老了,不能支持int A = 學
這樣的語句。如果C語言支持unicode的話,這個語句應該等價於int A = 23398
。
修改六
int main() { return B - A;}
運行結果是1,說明:
B - A
這段代碼等價於66 - 65
,所以計算結果就是1。可以觀察到一個結論,就是在ASCII碼錶里,數字、大寫字母、小寫字母的排位是連續的。
修改七
int main() { return z - y + x == y;}
運行結果是1,說明:
z - y + x == y
這段代碼等價於122 - 121 + 120 == 121
,==
左邊的計算結果是121,由於左右兩邊的值相同,所以==
這個運算符的運算結果就是1,表示左右兩邊的計算結果相等。如果==
左右兩邊的值不相等,那麼判斷結果就是0。==
被稱為比較運算符,其他比較運算符還有<
小於,>
大於,<=
小於等於,>=
大於等於,!=
不等於- 顧名思義,比較運算符也是一種運算符,跟加減乘除一樣。所以比較不是目的,通過比較兩個數,得到整數1或者整數0才是目的
- 一個等號表示變數賦值,兩個等號是比較運算,千萬不要搞混淆了。
修改八
int main() { int A = A > a; return A;}
運算結果是0,說明
int A = A > a
這段代碼等價於int A = 65 > 97
,而65 > 97
的運算結果是0,所以A = 0- 在ASCII碼錶裡面,同一個字母的大寫字母和小寫字母有不同的序號,而且大寫字母排在小寫字母的前面
有人會問了:既然我們能把「字元」翻譯成「序號」,那麼我們能不能把「序號」變成顯示在屏幕上的「字元」呢?答案當然是可以的,方法如下:
int putchar(int);int main(){ putchar(65); putchar(97); return 0;}
運行程序可以看到屏幕上顯示出了一個大寫的字母A和一個小寫字母a。
不過putchar是什麼東西?不能叫其他名字么?我們要先講講跟函數有關的語法,才能解釋清楚這些問題。
下一節:《函數》
推薦閱讀:
※剛好的可能就是最好的
※學習編程太枯燥?12款助你學編程的免費遊戲
※學習永遠不晚,只需做到更好
※[13] 遞歸
※[8] 結構體