1. 程式人生 > >C語言程式設計前五章知識總結習

C語言程式設計前五章知識總結習

                C語言程式設計前五章知識總結習

C語言資料型別分為常量和變數。常量分為整型常量(用int定義,有long和short之分,無符號前加unsigned,預設為有符號)、實型常量(單精度float、雙精度double、長雙精度long double)、字元型常量(char定義)字串常量。變數是變化的量,由使用者自己定義變數名的識別符號,變數的命名須遵循命名規則,識別符號必須區分大小寫。變數賦值時在賦值符號前後加空格可增加可讀性。
C語言的註釋格式為/x……x/,如果不加後半部分,註釋將一直持續到結束,區別於C++用//只註釋一行。註釋不可巢狀。
計算某種資料型別

用sizeof,如sizeof(int)。
C語言的賦值具有方向性,賦值是把右邊的值賦給左邊。計算含有不同型別運算子的表示式要考慮優先順序,優先順序相同考慮綜合性,結合行為C語言獨有的概念。兩個運算元的運算子左結合,賦值運算子右結合。
在從語言中完成一系列運算需要運算子,C語言的運算子共有34種,在第三章講了幾種常用的運算子:
算術運算子
“-(取相反數)“為優先順序最高的算術運算子,其結合性為從右向左;“x”、“/”、“%(求餘)”優先順序次之,“+”、“-”的優先順序最低。
“x”在指標中另有它意。
“/"用於同一組運算元在整型和實型中的結果不一樣,如浮點數除法5.0/2.0=2.5 和整數除法5/2=2 其結果是不同的。當“/"兩側均為整型時,結果為整型;有一個為實型,結果為雙精度。
“%”為求餘運算子(模運算子),只能用於兩個整型之間,符號與被除數保持一致,如5%-2=1,-5%2=-1。
複合運算子
分為符合算術運算子和符合位運算子,後者能夠實現簡寫的賦值如“+=”、“乘號=”、“%=”,舉個例子:
a %= b即為a = a % b。
自增運算子和自減運算子
以增1運算子為例,有“++a”和“a++”兩種形式,單獨執行二者,其結果是一樣的;但當將二者同時賦值於一個變數b時,前者是將增1後的值賦給b,後者是將本來的值賦給b後再自增。
在編譯時要避免使用如(i++)+(i++)之類會被機器認為有歧義的式子。
型別轉換分為自動型別轉換和強制型別轉換:
隱式型別轉換是機器自動將可以有低型別轉換為高型別的資料進行轉換,如char→int,short→int,float→double。
強制型別轉換如int(float a),由實型轉換為整型時會丟失資料,如3.14→3,單精度到雙精度擴充為16位,由雙精度到單精度會擷取前七位有效資料。
C語言應用數學函式
需調動標頭檔案math.h。
絕對值函式整型用abs,浮點數用fabs。
計算正弦餘弦函式如cos(x),其中x的單位是任意弧度。
求不小於、不大於x的最小整數分別用ceil、floor。
幾次方用pow,開方用sqrt。
不出意外都是double。
定義巨集常量在標頭檔案處用define,如:
#define a 666666
巨集名和字串之間可以有多個空白符,但無需加等號,因為巨集定義不是C語句,後面不能加分號。
巨集常量沒有資料型別,在字串替換時易出錯,const常量,如:
const int a = 6;
該語句可放在main裡外。
C語言引入轉義字元。轉義字元出現在字串中時,按單個字元計數。比如反/n代表一個字元。目前計算機上廣泛使用的字符集是ASCII碼字符集。getchar()和putchar()用於字元輸入和輸出。“a”與“A”、“b”與“B”的ASCII碼值相差32。
函式printf格式轉換:%u無符號整型,%s輸出字串。
小數點也佔一個字元位置。
scanf輸入%c時,空格字元和轉義字元都會被當作有效字元讀入,可在%c前加空格。
if條件語句表示式後不能加分號。
單分支是強調條件成立時執行的操作,需要分情況時使用雙分支。
if…if、if…else、if…else if的區別:
if:當前一個if條件成立時,才會去判斷下一個if的條件。
if…else:如果if()裡面的條件不成立,就直接執行下面else的語句。
if…else if:如果if()裡面的條件不成立,下面的else if還要進行條件判斷,如果又不成立就繼續往下判斷。
switch語句用於多路選擇。
邏輯運算子!非、&&與、||或。
&&和||都有短路的特徵。