C語言學習筆記(一)--認識C語言
C語言的發展過程
C語言是在70年代初問世的。一九七八年由美國電話電報公司(AT&T)貝爾實驗室正式發表了C語言。
同時由B.W.Kernighan和D.M.Ritchit合著了著名的“THE C PROGRAMMING LANGUAGE”一書。通常簡稱爲《
K&R》,也有人稱之爲《K&R》標準。但是,在《K&R》中並沒有定義一個完整的標準C語言,後來由美國國
家標準學會在此基礎上制定了一個C 語言標準,於一九八三年發表。通常稱之爲ANSI C。
當代最優秀的程序設計語言
早期的C語言主要是用於UNIX系統。由於C語言的強大功能和各方面的優點逐漸爲人們認識,到了八
十年代,C開始進入其它操作系統,並很快在各類大、中、小和微型計算機上得到了廣泛的使用。成爲當
代最優秀的程序設計語言之一。
C語言的特點
C語言是一種結構化語言。它層次清晰,便於按模塊化方式組織程序,易於調試和維護。C語言的表
現能力和處理能力極強。它不僅具有豐富的運算符和數據類型,便於實現各類複雜的數據結構。它還可以
直接訪問內存的物理地址,進行位(bit)一級的操作。由於C語言實現了對硬件的編程操作,因此C語言
集高級語言和低級語言的功能於一體。既可用於系統軟件的開發,也適合於應用軟件的開發。此外,C語
言還具有效率高,可移植性強等特點。因此廣泛地移植到了各類各型計算機上,從而形成了多種版本的C
語言。
C語言版本
目前最流行的C語言有以下幾種:
·Microsoft C 或稱 MS C
·Borland Turbo C 或稱 Turbo C
·AT&T C
這些C語言版本不僅實現了ANSI C標準,而且在此基礎上各自作了一些擴充,使之更加方便、完美。
面向對象的程序設計語言
在C的基礎上,一九八三年又由貝爾實驗室的Bjarne Strou-strup推出了C++。 C++進一步擴充和完善
了C語言,成爲一種面向 對象的程序設計語言。C++目前流行的最新版本是Borland C++4.5,Symantec
C++6.1,和Microsoft VisualC++ 2.0。C++提出了一些更爲深入的概念,它所支持的這些面向對象的概念
容易將問題空間直接地映射到程序空間,爲程序員提供了一種與傳統結構程序設計不同的思維方式和編程
方法。因而也增加了整個語言的複雜性,掌握起來有一定難度。
C源程序的結構特點
爲了說明C語言源程序結構的特點,先看以下幾個程序。這幾個程 序由簡到難,表現了C語言源程
序在組成結構上的特點。雖然有關內容還未介紹,但可從這些例子中瞭解到組成一個C源程序的基本部分
和書寫格式。
main()
{
printf()
}
main是主函數的函數名,表示這是一個主函數。每一個C源程序都必須有,且只能有一個主函數(main
函數)。函數調用語句,printf函數的功能是把要輸出的內容送到顯示器去顯示。printf函數是一個由系
統定義的標準函數,可在程序中直接調用。
#include <stdio.h>
#include <math.h>
main()
{
double x,s;
printf("input number:\n");
scanf("%lf",&x);
s=sin(x);
printf("sine of %lf is %lf\n",x,s);
}
C源程序的結構特點
1、C語言是一種結構化的程序設計語言, 語言本身簡潔、使用靈活方便。 既適用於設計和編寫大的
系統程序,又適用於編寫小的控制程序,也適用科學計算。
2、它既有高級語言的特點,又具有彙編語言的特點。 運算符豐富, 除了提供對數據的算術邏輯運
算外,還提供了二進制的位運算,並且也提供了靈活的數據結構。用C語言編寫的程序表述靈活方便,功
能強大。用C語言開發的程序,其結構性好,程序質量高,程序執行效率高。
3、程序的可移植性好。用C語言在某一種型號的計算機上開發語言的程序,基本上可以不作修改,而
直接移植到其它型號和不同檔次的計算機上運行。
4、 程序的語法結構不夠嚴密,程序設計的自由。這對於比較精通C語言的程序設計者來說,可以設
計出高質量的非常通用的程序。但對於初學者來說,要能比較熟練運用C語言來編寫程序,並不是一件容
易的事情。與其它高級語言相比而言,調試程序比較困難。往往是編好程序輸入計算機後,編譯時容易通
過, 而在執行時還會出錯。但只要對C語言的語法規則真正領會,編寫程序及調試程序還是比較容易掌握
的。
從書寫清晰,便於閱讀,理解,維護的角度出發,在書寫程序時 應遵循以下規則:
1.一個說明或一個語句佔一行。
2.用{} 括起來的部分,通常表示了程序的某一層次結構。{}一般與該結構語句的第一個字母對齊,並單
獨佔一行。
3.低一層次的語句或說明可比高一層次的語句或說明縮進若干格後書寫。以便看起來更加清晰,增加程序
的可讀性。在編程時應力求遵循這些規則,以養成良好的編程風格。
C語言的字符集
字符是組成語言的最基本的元素。C語言字符集由字母,數字,空格,標點和特殊字符組成。在字符
常量,字符串常量和註釋中還可以使用漢字或其它可表示的圖形符號。
1.字母 小寫字母a~z共26個,大寫字母A~Z共26個
2.數字 0~9共10個
3.空白符 空格符、製表符、換行符等統稱爲空白符。空白符只在字符常量和字符串常量中起作用。在其
它地方出現時,只起間隔作用, 編譯程序對它們忽略。因此在程序中使用空白符與否,對程序的編譯不
發生影響,但在程序中適當的地方使用空白符將增加程序的清晰性和可讀性。
4.標點和特殊字符
C語言詞彙
在C語言中使用的詞彙分爲六類:標識符,關鍵字,運算符,分隔符,常量,註釋符等。
1.標識符
在程序中使用的變量名、函數名、標號等統稱爲標識符。除庫函數的函數名由系統定義外,其餘都由
用戶自定義。C 規定,標識符只能是字母(A~Z,a~z)、數字(0~9)、下劃線()組成的字符串,並且其第
一個字符必須是字母或下劃線。
以下標識符是合法的:
a,x,_3x,BOOK_1,sum5
以下標識符是非法的:
3s 以數字開頭
s*T 出現非法字符*
-3x 以減號開頭
bowy-1 出現非法字符-(減號)
在使用標識符時還必須注意以下幾點:
(1)標準C不限制標識符的長度,但它受各種版本的C 語言編譯系統限制,同時也受到具體機器的限制。例
如在某版本C 中規定標識符前八位有效,當兩個標識符前八位相同時,則被認爲是同一個標識符。
(2)在標識符中,大小寫是有區別的。例如BOOK和book 是兩個不同的標識符。
(3)標識符雖然可由程序員隨意定義,但標識符是用於標識某個量的符號。因此,命名應儘量有相應的意
義,以便閱讀理解,作到“顧名思義”。
2.關鍵字
關鍵字是由C語言規定的具有特定意義的字符串,通常也稱爲保留字。用戶定義的標識符不應與關鍵
字相同。C語言的關鍵字分爲以下幾類:
(1)類型說明符
用於定義、說明變量、函數或其它數據結構的類型。如前面例題中用到的int,double等
(2)語句定義符
用於表示一個語句的功能。如例1.3中用到的if else就是條件語句的語句定義符。
(3)預處理命令字
用於表示一個預處理命令。如前面各例中用到的include。
3.運算符
C語言中含有相當豐富的運算符。運算符與變量,函數一起組成表達式,表示各種運算功能。運算符
由一個或多個字符組成。
4.分隔符
在C語言中採用的分隔符有逗號和空格兩種。逗號主要用在類型說明和函數參數表中,分隔各個變量
。空格多用於語句各單詞之間,作間隔符。在關鍵字,標識符之間必須要有一個以上的空格符作間隔,
否則將會出現語法錯誤,例如把int a;寫成 inta;C編譯器會把inta當成一個標識符處理,其結果必然出
錯。
5.常量
C 語言中使用的常量可分爲數字常量、字符常量、字符串常量、符號常量、轉義字符等多種。在第二
章中將專門給予介紹。
6.註釋符
C 語言的註釋符是以“/*”開頭並以“*/”結尾的串。在“/*”和“*/”之間的即爲註釋。程序編譯
時,不對註釋作任何處理。註釋可出現在程序中的任何位置。註釋用來向用戶提示或解釋程序的意義。在
調試程序中對暫不使用的語句也可用註釋符括起來,使翻譯跳過不作處理,待調試結束後再去掉註釋符。
—————————————————————————————————
本文原創自Slience的csdn技術博客。
本博客所有原創文章請以鏈接形式註明出處。
歡迎關注本技術博客,本博客的文章會不定期更新。
大多數人想要改造這個世界,但卻罕有人想改造自己。
世上沒有絕望的處境,只有對處境絕望的人。
————By slience
—————————————————————————————————