C語言總結筆記

2021-10-16 20:12:38 字數 4882 閱讀 3686

c語言是面向結構的計算機高階語言,其兼具一般高階語言和低階語言的優點,c語言功能強大、應用廣泛,既可以用來編寫系統軟體,也可以用來編寫應用軟體。它具有以下幾個特點:

(1) 語言簡潔、緊湊,使用方便、靈活。c語言程式比其他許多高階語言簡練,源程式短,因此輸入程式時工作量少。

(2) 運算子豐富。c語言的運算子包含的範圍很廣泛,共有34種運算子,

(3) 資料型別豐富。c語言提供的資料型別有:整型、浮點型、字元型、陣列型別、指標型別、結構體型別、共用體型別等,能用來實現各種複雜的資料結構(鍊錶、樹、棧等)的運算。

(4) 具有結構化的控制語句(如if…else語句、while語句、do…while語句、switch語句、for語句)。用函式作為程式的模組單位,便於實現程式的模組化。c語言是完全模組化和結構化的語言。

(5) 語法限制不太嚴格,程式設計自由度大。

(6) c語言允許直接訪問實體地址,能進行位操作,能實現組合語言的大部分功能,可以直接對硬體進行操作。

(7) 生成目標**質量高,程式執行效率高 。

(8) 用c語言編寫的程式可移植性好(與組合語言比)。

(1) c程式是由函式構成的。乙個c源程式有且僅有乙個main函式,也可以包含乙個main函式和若干個其他函式。因此,函式是c程式的基本單位。

(2) 乙個函式由兩部分組成:

函式的首部,即函式的第一行,包括函式名、函式型別、函式引數(形式引數)名、引數型別。

函式體,即函式首部下面花括號內的部分。

函式體一般包括以下兩部分。

● 宣告部分。在這部分中定義所用到的變數和對所呼叫函式的宣告。

● 執行部分。由若干語句組成。

(3) 乙個c程式總是從main函式開始執行的,而不論main函式在整個程式中的位置如何。

(4) c程式書寫格式自由,目前使用的許多c編譯系統,允許一行內寫幾個語句,乙個語句可以寫在多行上。

(5) 每個語句和資料宣告的最後必須有乙個分號。分號是c語句的必要組成部分。

(6) c語言本身沒有輸入輸出函式語句。輸入輸出由輸入輸出函式來完成。

(7) 可以用/*……*/對c程式中的某行或某幾行做注釋。

上機輸入與編輯源程式(.c)->對源程式進行編譯,得到目標程式(.obj)->將目標程式與庫函式連線,得到可執行程式(.exe)->執行可執行程式,得到執行結果。

程式=資料結構+演算法

為解決乙個問題而採取的方法和步驟,就稱為演算法。計算機演算法分為兩大類:數值運算演算法和非數值運算演算法。

演算法描述:自然語言、流程圖、n-s流程圖、偽**、計算機語言。

(1) 資料型別

在 c 語言中,資料型別可分為:基本資料型別,構造資料型別,指標型別,空型別四大類。

基本資料型別包括:整型(短整型(short int)、基本整型(int)、長整型(long int))、字元型(char)、實型(單精度型(float)、雙精度型(double)、長雙精度型(long double))、列舉型別(enum)

構造型別包括:陣列型別、結構體型別(struct)、共用體型別(union)

(2) 識別符號:在c語言中用來對變數、符號常量、函式、陣列、型別等資料物件命名的有效字串行統稱為識別符號。識別符號由字母、數字和下劃線3種字元組成,且第乙個字元必須為字母或下劃線。

(3) 基本資料型別

1)整型常量的表示方法:

十進位制整常量沒有字首。

八進位制整常數必須以 0 開頭,數碼取 0~7,八進位制通常是無符號數。

十六進製制整常數字首 0x 或 0x,數碼取值 0~9、a~f 或 a~f。

整型常數可以有字尾 l 或 l、u 或 u,表示的整數範圍要廣,一般 c 編譯系統給普通數分配兩位元組空間,長整型分配 4 位元組空間。

2) 整型變數

在記憶體中,數值以補碼表示。

正數補碼與原碼相同,負數補碼為絕對值按位取反再加 1。

整型變數分類:基本整型(int)、短整型(short int) 在記憶體中都佔兩個位元組,長整型(long int)佔 4 位元組。(具體由編譯系統決定)無符號型(unsigned)與上面三種型別匹配使用。

幾個範圍:-32768~32767,0~65535

定義:型別說明符變數名識別符號,變數名識別符號,...;

3) 實型常量(也稱為浮點型)

表示方法:十進位制小數形式,如 5.789;指數形式,aen(a 為十進位制數,n 為十進位制整數)

實型常數都按雙精度 double 型處理。

標準 c 允許浮點數使用字尾,f 或 f,表示該數為浮點數。

4)實型變數

實型資料一般佔 4 位元組記憶體空間,由數符(+、 -)、小數部分、指數三部分構成,在 turbo c 中,單精度佔 4 位元組空間,只能提供 7 位有效數字。雙精度佔 8 位元組空間,可提供 16 位有效數字。長雙精度佔 16 位元組空間,可提供 19 位有效數字。

注意:提供 7 位有效數字並不是說顯示結果只有 7 位,只有前 7 位可以正確顯示,之後的為無效數字。雙精度有效位 16 位,但是 turbo c 規定小數後最多保留六位,其餘部分四捨五入。

5)字元常量

用單引號括起來的乙個字元。把數字括起來就不能當做數字進行數值運算。

6)轉義字元

了解常用轉義字元的含義。如\n,\t,\b,\rf,\ddd,\xhh。理論上來說,c 語言字符集中的任何乙個字元均可以由轉義字元表示,最後兩個轉義字元正是為此而提出的。

7)字元變數

每乙個字元變數分配乙個位元組空間,因此只能存貯乙個字元。實際上字元是以 ascii 碼(美國標準資訊交換碼)的形式儲存在空間單元裡。c 語言允許把字元變數按整型量輸出,也准許把整型量按字元量輸出。

大小寫字母的 ascii 碼相差 32。大寫字母 ascii 碼數值較小。

8) 字串常量

字串常量由雙引號括起來。"china","c program"

字元常量可以賦值給字元變數,但是 c 語言中沒有相應的字串變數。

字串常量可以用乙個字元陣列來存放。字串常量佔的記憶體位元組數等於字串中位元組數加 1,增加的乙個為"\0",結束符號。如"a"的存放佔 2 位元組,'a'的存放佔 1 位元組。

(4) 變數賦值

允許在變數定義時候賦值,但是不能連續賦值,如 a=b=c=5 是不合法的。

(5) 各類數值型資料之間的混合運算

1)若參與運算量的型別不同,則先轉換為同一型別,然後進行運算。

2)轉換按資料長度增加的方向進行,以保證精度不降低。

3)所有的浮點運算都是以雙精度進行的。

4)char 型和 short 型參與運算時,必須先轉換為 int 型。

5)賦值運算中,賦值號兩邊的資料型別不同時,賦值號右邊量的型別將轉換為左邊的型別。這可能導致精度丟失,丟失的部分按四捨五入。

6)強制型別轉換:(型別說明符)(表示式)。該轉換只是臨時的轉換,而不改變資料說明時對該變數定義的型別。

(6)算術運算子和算術表示式

c 語言中的運算子和表示式數量非常多,使得 c 語言功能完善的同時增加了 c 語言的複雜度。運算子具有優先順序和結合性兩個特點讓運算十分靈活。

1)算術運算子和算術表示式

i 、--i 、i++ 、i—

注 1:除法參與運算量均為整數時,結果也為整型,捨去小數。如果運算量中有乙個是實型,則結果為雙精度實型。如 20/7 結果為 2,20.0/7=2.857143

注 2:c 語言中左結合性指自左至右運算,如 x+y+z,=號具有右結合性。單目運算子、三目運算子、賦值運算子具有右結合性。

c 語言中,有 15 個優先順序,1 級最高,15 級最低。

注 3:求餘運算子要求參與運算的均為整型。

注 4:單目,雙目運算子的概念。

注 5:注意理解++i 與 i++的區別。++i 表示在執行++i 所在語句時先有一條 i=i+1 指令,i++

表示在執行 i++所在語句之後有一條 i=i+1 指令。

(7) 賦值運算子和賦值表示式

=它具有右結合性,如 a=b=c=5 可理解為 a=(b=(c=5)),=定義為運算子的含義是凡是表示式可以出現的地方均可以出現賦值表示式。賦值表示式會把右邊的型別轉換為左邊的型別。

<<=,>>

復合賦值符的寫法十分有利於編譯處理,能提高編譯效率並產生質量較高的目標**。

(8)逗號運算子和逗號表示式

c 語言中逗號也是一種運算子。其功能是把兩個表示式連線起來組成乙個表示式

表示式 1,表示式 2

其求值過程是分別求兩個表示式的值,並以表示式 2 的值作為整個逗號表示式值

如 y=((x=2+2),3+3),則 y 的值為 6

(1) c 程式結構:乙個程式可以由多個源程式檔案組成;每乙個源程式檔案由預處理命令、全域性變數宣告、函式 1、函式 2、函式 n 組成;每乙個函式由函式首部和函式體構成;每乙個函式體由區域性變數宣告、執行語句構成。

(2) 程式功能由執行語句實現,c 語句可分為 5 類:1)表示式語句;2)函式呼叫語句;3)控制語句;4)復合語句;5)空語句

表示式;

函式名(實際參數列);

控制語句有 9 種;

復合語句由{}括起來;

只有「;」的語句稱為空語句。

(3)賦值語句

注意在變數說明中,不允許連續給多個變數賦初值,如 int a=b=c=5;是錯誤的。而賦值語句允許連續賦值。

注意賦值語句和賦值表示式的區別。語句有;號,而表示式沒有。表示式可以出現在允

許表示式出現的地方,而賦值語句則不能。

(4)資料輸入輸出的概念及在 c 語言中的實現

在 c 語言中,所有的輸入/輸出都是由庫函式完成的。在使用 c 語言庫函式時,要用預編譯命令#include 將有關「標頭檔案」包括到原始檔中。使用標準輸入輸出庫函式要用到「stdio.

h」檔案,因此原始檔開頭應有以下預編譯命令:

#include 或 #include "stdio.h"。stdio 是 standard input&output。

考慮到 printf 和 scanf 函式使用頻繁,系統允許在使用這兩個函式時可以不加。

c語言筆記總結

字型 font family 字型大小 font size font weight 設定或檢索物件中的文字字型的粗細。text decoration 檢索或設定物件中的文字的裝飾。font style 設定或檢索物件中的字型樣式。line height 設定或檢索行距。text transform ...

C語言深度剖析筆記

第一章 32個關鍵字簡記 注 該筆記根據 c語言深度剖析 一書而成 sizeof是32個關鍵字之一 什麼是宣告?什麼是定義?詳見p11頁 定義與宣告的區別 定義建立了物件並為這個物件分配了記憶體,宣告沒有分配記憶體,可以先宣告把位子佔了 如函式的宣告 然後再定義 auto關鍵字 p12 可以當其不存...

C語言譚浩強學習筆記

第一章程式設計和c語言 1 計算機能直接識別和接受的二進位制 稱為機器指令,機器指令的集合就是該計算機的機器語言。2 語言的發展歷史 機器語言 符號語言 高階語言 3 高階語言的發展 非結構化語言 結構化語言 物件導向的語言 4 c語言的祖先是bcpl語言 5 在字串中的 和 都不作為注釋的開始。而...