早期的c 語言主要是用於unix系統。
目前最流行的c語言有以下幾種:
·microsoft c 或稱 ms c
·borland turbo c 或稱 turbo c
·at&t c
這些c語言版本不僅實現了ansi c標準,而且在此基礎上各自作了一些擴充,使之更加方便、完美。
c語言簡潔、緊湊,使用方便、靈活。ansi c一共只有32個關鍵字,9種控制語句,
注意:在c語言中,關鍵字都是小寫的。
c語言規定,源程式中所有用到的變數都必須先說明,後使用,否則將會出錯。這一點是編譯型高階程式語言的乙個特點,與解釋型的basic語言是不同的。
1.乙個c語言源程式可以由乙個或多個原始檔組成。
2.每個原始檔可由乙個或多個函式組成。
3.乙個源程式不論由多少個檔案組成,都有乙個且只能有乙個main函式,即主函式。
4.源程式中可以有預處理命令(include 命令僅為其中的一種),預處理命令通常應放在原始檔或源程式的最前面。
5.每乙個說明,每乙個語句都必須以分號結尾。但預處理命令,函式頭和花括號「}」之後不能加分號。
6.識別符號,關鍵字之間必須至少加乙個空格以示間隔。若已有明顯的間隔符,也可不再加空格來間隔。
在使用識別符號時還必須注意以下幾點:
(1)標準c不限制識別符號的長度,但它受各種版本的c 語言編譯系統限制,同時也受到具體機器的限制。例如在某版本c 中規定識別符號前八位有效,當兩個識別符號前八位相同時,則被認為是同乙個識別符號。
(2)在識別符號中,大小寫是有區別的。例如book和book 是兩個不同的識別符號。
(3)識別符號雖然可由程式設計師隨意定義,但識別符號是用於標識某個量的符號。因此,命名應盡量有相應的意義,以便於閱讀理解,作到「顧名思義」。
在c語言中,資料型別可分為:基本資料型別,構造資料型別,指標型別,空型別四大類。
數值是以補碼表示的:
正數的補碼和原碼相同;
負數的補碼:將該數的絕對值的二進位制形式按位取反再加1。
字串常量和字元常量是不同的量。它們之間主要有以下區別:
1) 字元常量由單引號括起來,字串常量由雙引號括起來。
2) 字元常量只能是單個字元,字串常量則可以含乙個或多個字元。
3) 可以把乙個字元常量賦予乙個字元變數,但不能把乙個字串常量賦予乙個字元變數。在c語言中沒有相應的字串變數。這是與basic 語言不同的。但是可以用乙個字元陣列來存放乙個字串常量。在陣列一章內予以介紹。
字元常量佔乙個位元組的記憶體空間。字串常量佔的記憶體位元組數等於字串中位元組數加1。增加的乙個位元組中存放字元"\0" (ascii碼為0)。這是字串結束的標誌。
變數的資料型別是可以轉換的。轉換的方法有兩種,一種是自動轉換,一種是強制轉換。自動轉換發生在不同資料型別的量混合運算時,由編譯系統自動完成。自動轉換遵循以下規則:
1) 若參與運算量的型別不同,則先轉換成同一型別,然後進行運算。
2) 轉換按資料長度增加的方向進行,以保證精度不降低。如int型和long型運算時,先把int量轉成long型後再進行運算。
3) 所有的浮點運算都是以雙精度進行的,即使僅含float單精度量運算的表示式,也要先轉換成double型,再作運算。
4) char型和short型參與運算時,必須先轉換成int型。
5) 在賦值運算中,賦值號兩邊量的資料型別不同時,賦值號右邊量的型別將轉換為左邊量的型別。如果右邊量的資料型別長度左邊長時,將丟失一部分資料,這樣會降低精度,丟失的部分按四捨五入向前捨入。
字串常量和字元常量是不同的量。它們之間主要有以下區別:
1) 字元常量由單引號括起來,字串常量由雙引號括起來。
2) 字元常量只能是單個字元,字串常量則可以含乙個或多個字元。
3) 可以把乙個字元常量賦予乙個字元變數,但不能把乙個字串常量賦予乙個字元變數。在c語言中沒有相應的字串變數。這是與basic 語言不同的。但是可以用乙個字元陣列來存放乙個字串常量。在陣列一章內予以介紹。
字元常量佔乙個位元組的記憶體空間。字串常量佔的記憶體位元組數等於字串中位元組數加1。增加的乙個位元組中存放字元"\0" (ascii碼為0)。這是字串結束的標誌。
在使用強制轉換時應注意以下問題:
1)型別說明符和表示式都必須加括號(單個變數可以不加括號),如把(int)(x+y)寫成(int)x+y則成了把x轉換成int型之後再與y相加了。
2)無論是強制轉換或是自動轉換,都只是為了本次運算的需要而對變數的資料長度進行的臨時性轉換,而不改變資料說明時對該變數定義的型別。
例如條件語句:
if(a>b) max=a;
else max=b;
可用條件表示式寫為
max=(a>b)?a:b;
break語句通常用在迴圈語句和開關語句中。當break用於開關語句switch中時,可使程式跳出switch而執行switch以後的語句;如果沒有break語句,則將成為乙個死迴圈而無法退出。break在switch 中的用法已在前面介紹開關語句時的例子中碰到,這裡不再舉例。
當break語句用於do-while、for、while迴圈語句中時,可使程式終止迴圈而執行迴圈後面的語句, 通常break語句總是與if語句聯在一起。即滿足條件時便跳出迴圈。
1) break語句對if-else的條件語句不起作用。
2) 在多層迴圈中, 乙個break語句只向外跳一層。
continue語句的作用是跳過迴圈本中剩餘的語句而強行執行下一次迴圈。continue語句只用在for、while、do-while等迴圈體中,常與if條件語句一起使用,用來加速迴圈。其執行過程可用下圖表示。
對靜態區域性變數的說明:
1) 靜態區域性變數屬於靜態儲存類別,在靜態儲存區內分配儲存單元。在程式整個執行期間都不釋放。而自動變數(即動態區域性變數)屬於動態儲存類別,佔動態儲存空間,函式呼叫結束後即釋放。
2) 靜態區域性變數在編譯時賦初值,即只賦初值一次;而對自動變數賦初值是在函式呼叫時進行,每呼叫一次函式重新給一次初值,相當於執行一次賦值語句。
3) 如果在定義區域性變數時不賦初值的話,則對靜態區域性變數來說,編譯時自動賦初值0(對數值型變數)或空字元(對字元變數)。而對自動變數來說,如果不賦初值則它的值是乙個不確定的值。
外部變數(即全域性變數)是在函式的外部定義的,它的作用域為從變數定義處開始,到本程式檔案的末尾。如果外部變數不在檔案的開頭定義,其有效的作用範圍只限於定義處到檔案終了。如果在定義點之前的函式想引用該外部變數,則應該在引用之前用關鍵字extern對該變數作「外部變數宣告」。表示該變數是乙個已經定義的外部變數。有了此宣告,就可以從「宣告」處起,合法地使用該外部變數。
C語言總結
複習了下c語言,總結如下 1.瑞年的判斷 1 能被4整除,但不能被100整除 2 能被100整除,又能被400整除 2.符號常量名使用大寫,字元使用字母數字下劃線組成,第乙個字母必須為字母或下劃線 3.以0開頭的是八進位制數 0123 十進位制83 以0x開頭的是十六進製制數。0x123 print...
C語言總結
十一天課的總結 只為總結,詳細請看前面的 一 順序結構 從上往下依次執行的 結構 計算機執行程式時,都是編譯成二進位制檔案,計算機中又分為 二進位制 例如 101001001就是乙個二進位制數字 八進位制 例如 023767是乙個八進位制數字,前面的0代表這是乙個八進位制數字 十進位制 10,33,...
c語言總結
就學習c語言我總結了一下幾點 一 課堂 在每一節課上,注意老師講的內容,有的知識,老師稍微提點,你就能弄懂,但是自己看書,或許你幾天也弄不懂。老師更能清晰地讓你明白所要求掌握的知識點。在課堂上,盡可能多的在草稿紙上寫下你自己的 讓老師看或是自己上機除錯。二 筆記 無論學習什麼知識,筆記是重點,俗話說...