1. c語言是什麼意思
C語言是學習編程的第一門語言,很少有不了解C的程序員。C語言除了能讓程序員了解編程的相關概念,帶你程序員進編程的大門,還能讓程序員明白程序的運行原理,比如,計算機的各個部件是如何交互的,程序在內存中是一種怎樣的狀態,操作系統和用戶程序之間有著怎樣的「愛恨情仇」,這些底層知識決定了程序員的發展高度,也決定了程序員的職業生涯。
C語言的缺點
1、C語言的缺點主要表現為數據的封裝性弱,這一點使得C在數據的安全性上有很大缺陷,這也是C和C++的一大區別。
2、C語言的語法限制不太嚴格,對變數的類型約束不嚴格,影響程序的安全性,對數組下標越界不作檢查等。從應用的角度,C語言比其他高級語言較難掌握。也就是說,對用C語言的人,要求對程序設計更熟練一些。
2. C語言有什麼發展前景
C語言的發展前景主要在嵌入式和操作系統開發上。這兩種底層的技術離不開C語言,也是C語言一直占據流行語言前三位置的主要原因。所以,學習編程,C語言是一門不錯的選擇,以後還可以拓展到其他編程語言。
3. C語言為什麼會被人說的那麼強大,C語言到底能做啥
一、c語言是一種計算機編程語言
具有程序設計語言的特性,又具有匯編語言的特性。c語言可當做工作中控制系統設計語種,撰寫系手機應用程序,還可以當做運用編程語言,撰寫不依靠計算機硬體的手機應用程序。
二、運用條件廣泛應用
具有較強的數據預處理能力,不但是在開發軟體上,並且各種科學研究都必須用到c語言,適合撰寫軟體系統,三維立體,二維動畫幾何體和3d動畫。具體化運用例如單片機設計及其嵌入式系統開發設計。
三、c語言是面向對象編程語種
c語言運用windows服務平台下編譯的,是一直執行在windows服務平台下的,而Java自始至終是執行在他的虛擬機以上的;因此理論上c語言能做某些相對性於較為下層的工作中,像Java就不可以撰寫Windows木馬病毒。
四、Windows系統優化
假如要運用編程來做某些windows系統優化工作中的情況下,最好還是運用c語言。c語言是現階段世界上最火、用到最廣泛應用的高級編程語言。
4. C語言重要嗎!!!!我是軟體專業的 很困惑
先說對樓主的建議:
C在應用方面的優勢在於底層,以及任何對效率有苛刻要求的地方。這種地方並不少,如操作系統、嵌入式、一些軟體中對效率要求高的部分。很多java程序也需要C來配合,如tomcat。
C對於專業技能鍛煉方面意義更大。因為一個鐵的事實是「熟悉內部原理的人更能寫出優質的代碼」,C對上承接高級語言,對下和匯編掛鉤,這種特殊的位置註定了C在眾多計算機語言中是了解計算機的一個絕佳切入點。即便只是不太深刻的了解,C配合著其他理論課程帶給我的認知就是所謂非計算機專業出身的人沒有的東西了。這是我個人的想法以及認為最重要的地方。
對於樓主現在的處境,我的建議是「學有餘力以廣為主,力有不逮以精為主」。對C即便興趣不大也應該因它的重要性對自己要求嚴格一點點,一點點就夠了,比及格高一點點即可。然後試著看看java,我是看孫鑫的視頻入門的,感覺不錯。然後依照興趣,選擇C還是java。但我相信,如果你走技術路線,總有一天你會回來重新審視C和試著去深入了解C的,而且不會太遠。
另外我個人的經驗是兩點很重要:一個是興趣所向,看樓主的提問方式就知道樓主也很贊同這點啊。另一個是培養自信,尤其是對於我這種心理不強大的人,我需要自信讓我走下去。具體做法可以是先讀薄的書,換一個你可以稍微虐待一下別人的環境(嘿嘿……),視樓主情況而定。
下面是我個人有關C的經驗經歷:
我現在是一個二本學校的計算機專業的,大三。(看到這你會不會懷疑我上面說的啊,哈哈)
大一上學期開的程序設計課程,C。當時我們學的C只是基本的語法,同時憧憬C++,因為據說C++能做界面,而不是C那樣黑黑的框框,一點也不美觀。而且當時見識淺薄,都不太知道Java,呵呵。但課堂狀態比較好,保持聽課和作業,不過課外一點不付出勞動。
大一下學期的重點是數據結構,也是通過C講的,當時隱約的認識到重點是語言背後的東西,語言是一種媒介。正確的想法卻導致我對C重要性的認識程度進一步下降,但對C的熟練度上升,期末作業是排序演算法比較,還是一個黑框框的程序。
大一暑假加入學校ACM,做了杭電2000-2100的100道入門題目,還有其他的50+左右。那對於我的技術水平絕對是質的飛躍,體現在演算法、C的熟練度、調適能力及各種細節上。但對C的認識沒提高。嘗試C++,不到兩天放棄,╮(╯▽╰)╭。但做題時開始使用C++的模板及一些庫函數。
大二相對懈怠。大二上有C++,是面向對象入門。我覺得你們學校的java應該是同一個目的。以面向對象理論的入門為主。不過我當時真是入門啊,邁進去腳看看就出來了。
大二下我都不記得幹了什麼了。。。好像是嘗試Android來著,後來放棄了,有點陷入自我否定的情緒低潮。也是那時開始接觸的java,但什麼也沒學到。
大二暑假,奮發圖強,以廣為主,通過看視頻或文字教程+動手實踐的方式接觸了vc++、java、php、python。然後就迷上了python。當時對C的感覺有點微妙,因為C能做到一些python難以做到的事,而且python本身就是一個出色的C項目。開始重新審視C在眾多語言中的位置。
大三上,開java課。很認真的聽了java,並與python做對比,收獲太大了,具體細節不提。對C的認識保持不變。
現在的寒假,做項目的時候看到了一些C的面向對象編程,發現,這絕對不是噱頭。也開始看python的源碼,更是深深為C的精巧靈活所折服。C不可或缺、必須要找時間再深入學習,這是我現在迫切的想法。
現在我學習時最關注3個東西:1.語言背後的東西。因為你是以語言提問,我就以語言上的經歷回答,但這絕對不是最重要的,計算機科學的發展依託於什麼?必然主要是理論的成長。而理論在實踐中的影響像是隱形的,又無處不在、威力巨大。2.python特有的實現方式。3.用C實現時的適用性、效率優勢多大、與python實現的對比等。就像剛才說的,第三點的關注度還在提高中。
以上個人經驗,不一定正確,只是希望作為你的一個參考,給你些幫助。就像我剛學的時候渴求的那些幫助一樣。 :-)
5. c語言的重要性是什麼
你閱讀完下面的文章就知道了
(一)「項目驅動」式教學
目前最著名、最有影響、應用最廣泛的windows、linux和UNIX三個操作系統都是用C語言編寫的。0S是計算機系統(由軟硬體兩個子系統構成)的核心和靈魂,它是軟體中最龐大最復雜的系統軟體。既然如此龐大復雜的0S都可以用c語言編寫,從狹義而言,還有什麼系統軟體和應用軟體不能用c語言編寫呢?由此可以肯定的說,c語言是一門十分優秀而又重要的語言。
c語言程序設計是過程性程序設計語言,它的發展貫穿了計算機發展的歷程,它蘊含了程序設計的基本思想,囊括了程序設計的基本概念,所以它是理工科高等院校的一門基礎課程。
從市面上有關c語言的書籍和高等院校採用的教材來看,它們有一個共性,那就是:脫離了實際應用(全是小打小鬧的小例子),純粹的過程性程序設計,沒有軟體工程思想的體現,沒有一定程序設計風格,僅僅是為了讓大家明白什麼是c語言而已。
高等院校開設c語言程序設計的目的是讓學生對程序設計有個入門,有個直觀的理解,同時為其他後續課程作鋪墊。但是如果教學僅僅以此為目的,那麼教學本身就效果而言是個大大的失敗。
大家知道,在商業上講究唯利是圖,「利」是商業追求的目標,離開了「利」經商,則商無動力,其結果是必敗無疑。在c語言程序設計教學當中,教師應該把「唯用是圖」作為教學的首要目標。如果拋開了實際應用進行程序設計教學,就是紙上談兵,就是「說明書」式的教學。印度的程序設計課程採用「事件驅動式」教學,我認為在中國的c語言程序設計教學中應該採用「項目驅動式」教學。「項目驅動式」教學就是以項目為目的,以c語言理論教學為過程,最終能用c語言設計項目,實現項目的要求。「項目驅動式」教學的關鍵在於培養學生「如何做什麼」和「可以干什麼」。一個項目就是一個工程,在「項目驅動式」教學中,首先應該讓學生簡單了解什麼是軟體工程思想,其次在c語言理論教學過程中,讓學生懂得面向對象的程序設計的風格,最後引導他們來設計項目。
(二)「項目驅動」式教學應注意的問題
1.c語言程序設計教學要幫助學生樹立面向工程的觀點
在計算機行業中,軟體是通過人們的智力活動、把知識與技術轉化成信息的一種產品。軟體的設計已經用工程的觀念來進行管理。軟體設計工作被當作一項系統工程來對待。軟體的的生存周期一般可分為以下階段:問題定義、可行性研究、需求分析、概要設計、詳細設計、編碼、測試、運行與維護。我們不難看出軟體工程的復雜程度是很大的。理工科高等院校把c語言作為一門基礎課程,也是為了給社會培養信息技術人才。眾所周知,養成一個好的習慣是非常重要的,所以c語言程序設計作為大多數工科院校學生接觸的第一門程序設計語言(有的院校講pascal),就應該讓學生樹立正確的觀點。那麼當前的程序設計教學也必須以切合將來軟體工程開發的實際需要為第一目標,使學生在學習程序設計的初級階段就樹立正確的軟體工程觀點。這樣做不僅可以為學生將來從事計算機應用設計打下良好的基礎,而且有利於培養學生分析問題的完備性,以及統籌全局,協調關系的基本素質。
2.理論教學應從單一的「結構化程序設計」向「結構化與面向對象並舉」轉變
「結構化程序設計」方法是程序設計的基礎,必須讓學生掌握得堅實可靠。結構化程序設計的過程是培養學生思維能力的過程,在教學中經常發現有些學生的思維混亂。這些都是缺乏思維訓練的結果。結構化程序設計的訓練不僅可以讓學生養成良好的程序設計習慣,而且可以有效地培養學生思維的條理性和邏輯性。所以在授課過程中要注意講解結構化程序設計的思想時應突出兩點:(1)程序的質量首先取決於它的結構。(2)程序設計的基本方法是自頂向下地逐步求精和模塊化。
在c程序教學過程中,越到後面的章節,學生越會產生設計程序逐漸變難的感覺,這是不符合邏輯的一種怪現象。按照常理,C語言學的越多,說明你的程序設計知識越多,設計起程序來應該更加得心應手,那麼出現這種現象的原因何在呢?當然該問題的出現的原因是多方面的,但是其中最重要的一點就是長期以來程序設計的觀念不是以如何處理好對象為出發點,而是以如何使用好語言為基本點。受這種思想的影響,我們的程序設計教學大多數不是以如何解決好問題為重點,而是以講解語法規則和語句格式為重點,是「說明書」式的教學。這樣做造成的結果就是見到一個程序後學生首先想到是該用哪條語句,而不是思考怎樣合理的解析。要切實解決這個問題,首先應該改變程序設計的觀念。「面向對象程序設計」思想是目前最為流行、極為實用的一種程序設計方法,但是讓學生直接接觸「面向對象程序設計」,肯定不能對程序設計打下牢固的基礎。「結構化與面向對象並舉」是現代計算機程序設計的發展趨勢,應該認真探索研究,讓學生有一個較為輕松的學習過程。程序設計的實質就是編寫處理對象的過程,所以將c與c++有機的融為一體的教材應該是首選教材,在教學過程中,我們應該從社會發展的角度進行探索研究,將目前最為流行又極為實用「面向對象程序設計」思想融合到c語言教學中。
3.c語言教學應培養學生良好的程序設計風格
具有良好的設計風格應該是程序員所具備的基本素質,在實際的項目中程序員往往都有自己的一些編程風格。目前95%以上的程序設計書籍不注重程序設計風格問題,這導致了很多學生沒有良好的程序設計風格,在他們剛剛畢業踏入社會時,如果周圍的同事沒有良好的編程風格,那麼很難通過環境來使自己提高這方面的素質,即使有提高也不容易比較全面的提高。因此在學生接觸的第一門程序設計語言教學中,就應該培養學生良好的程序設計風格,使他們一進工作環境就具備這個素質。
Pascal設計者N.Writh教授十分重視程序設計風格的養成,他堅信「教給學生們以表達他們思維的語言會深深地影響他們思維和創造發明的習慣,而正是這些語言本身的混亂直接影響著學生們的程序設計的風格」,他這里所指的「這些運用」是當時那些主要用於程序設計教學的計算機語言。對學生來講,一開始就強調程序設計風格很有必要,良好的程序設計風格不僅有助於提高程序的可靠性、可理解性、可測試性、可維護性和可重用性,而且也能夠促進技術的交流,改善軟體的質量。所以培養良好的程序設計風格對於初學者來說非常重要。
程序設計風格,實際上是指的是編碼風格。在教學過程中應從源程序文檔化,數據說明的原則,輸入/輸出方法這三個方面培養學生的編碼風格,進而從編碼原則探討提高程序的可讀性、改善程序質量的方法。
(1)源程序文檔化。編碼的目的是產生程序,但是為了提高程序的可維護性。源代碼是需要實現文檔化的。源程序文檔化包括選擇標識符(變數和標號)的名字、安排注釋以及標準的書寫格式等。
①選擇標識符的命名規則。標識符包括模塊名、變數名、常量名、標號名、子程序名等。這些名字應能反映它所代表的實際東西,應有一定實際意義,使其能顧名思義。另外在模塊名、變數名、常量名、標號名、子程序名中使用下劃線是一種風格。使用這一技術的一種廣為人知的命名規則就是匈牙利命名法(變數類型由一個或兩個字元表示,並且這些字元將作為變數名的前綴)。當然使用匈牙利命名法與否都沒有錯誤,重要的是要保持一致性——在整個程序中使用相同的命名規則。這就是說,如果你在一個小組環境中編程,你和其他小組成員應該制定一種命名規則。並自始至終使用這種規則。如果有人使用了別的命名規則,那麼集成的程序讀起來將是很費勁的。此外,你還要與程序中用到的第三方庫(如果有的話)所使用的風格保持一致。如果可能的話,你應該盡量使用與第三方庫相同的命名規則,這將加強你的程序的可讀性和一致性。
②注釋。程序中的注釋是程序設計者與程序閱讀者之間通信的重要手段。注釋能夠幫助讀者理解程序,並為後續測試維護提供明確的指導信息。因此,注釋是十分重要的,大多數程序設計語言提供了使用自然語言來寫注釋的環境,為程序閱讀者帶來很大的方便。注釋分為功能性注釋和序言性注釋。
a.功能性注釋。功能性注釋在源程序中,用以描述其後的語句或程序段是在做什麼工作,也就是解釋下面要「做什麼」,而不是解釋下面怎麼做。對於書寫功能性注釋,要注意以下幾點:第一描述一段程序,而不是每一個語句。第二利用縮進和空行,使程序與注釋容易區別。第三注釋要准確無誤。
b.序言性注釋。序言性注釋通常位於每個程序模塊的開頭部分,它給出程序的整體說明,對於理解程序具有引導作用。有些軟體開發部門對序言性注釋做了明確而嚴格的規定,要求程序編制者逐項列出。有關內容包括:程序標題;有關該模塊功能和目的的說明;主要演算法;介面說明:包括調用形式,參數描述,子程序清單;有關數據描述;模塊位置(在哪一個源文件中,或隸屬於哪一個軟體包);開發簡歷:模塊設計者、復審考、復審日期。
③用標準的書寫格式。源程序清單的書寫建議採用以下幾點:
a.每行只寫一條語句;
b.用分層縮進的寫法顯示嵌套結構層次,這樣可使程序的邏輯結構更加清晰,層次更加分明。
c.書寫表達式時適當使用空格或圓括弧作隔離符。
d.在注釋段周圍加上邊框;
e.注釋段與程序段、以及不同的程序段之間插入字行;
(2)數據說明採用的原則。在編寫程序時,要注意數據說明的風格。
數據說明的次序如果規范,將有利於測試,排錯和維護。首先說明的先後次序要固定,例如,按常量說明、簡單變數類型說明、數組說明用數據塊說明、所有的文件說明的順序說明。當然在類型說明中還可進一步要求,例如按如下順序排列:整型量說明、實型量說明、字元量說明、邏輯說明。
其次當用一個語句說明多個變數名時,應當對這些變數按字母的順序排列。
最後對於復雜數據結構,應利用注釋說明實現這個數據結構的特點。
(3)輸入/輸出方法。輸入/輸出的方式和格式應當盡量避免因設計不當給用戶帶來的麻煩。這就要求,源程序的輸入/輸出風格必須滿足能否為用戶接受這一原則。所以在設計程序時,應考慮以下原則:輸入數據時,要使輸入的步驟和操作盡可能簡單,應允許使用自由格式輸入;應允許預設值;對輸入的數據要進行檢驗,以保證每個數據的有效性。
(三)結束語
在教學過程中,我們讓學生設計一個程序模擬體育彩票的銷售與對獎的過程,取得了良好的效果。他不僅啟發和誘導了學生獨立思考、積極思維的主動性,而且充分調動了學生學習的自覺性和積極性,使學生融會貫通地掌握了所學知識,提高了分析問題和解決實際問題的能力。
搞好c程序設計的教學工作涉及的因素很多,如果以項目來驅動教學,首先讓學生樹立面向工程的思想,其次把教學從單一的「結構化程序設計」向「結構化與面向對象並舉」轉變,最後特別要培養學生養成良好的編碼風格,從而使他們學會能夠「干什麼」,那麼我們認為教學目的就達到了。
6. C語言重要嗎
對於理工 科學生來說,這個答案可能很簡單,因為這是一門必修課。而對於程序員來說選擇一門編程語言,在某種程度上,對職業生涯的發展會產生重大的影響,所以必須慎 之又慎。那麼,為什麼要選擇一門誕生了將近半個世紀的語言?本文不是老生常談的廢話,如:」C 語言是編程的基礎」、」學好 C 語言,走遍天下都不怕」等等,本文力爭詳盡而又有理的回答這個問題,首先咱們先了解一下何為 『c』 語言
C 語言
C 語言是由美國 AT&T 貝爾實驗室的研究員 Dennis Ritchie 在 B 語言的基礎上,最初作為改造 Unix 操作系統的開發語言,並伴隨著 Unix 操作系統興起而流行,後來,隨著微型計算機的發展,C 開始被移植到其他操作系統平台上,成為獨立的程序設計語言。
為操作系統而生的標簽註定了 C 不可能平庸,實話實說,C 是一門很難學習和使用的編程語言,沒有編譯原理、操作系統和計算機體系結構扎實的基礎知識,根本不可能把 C 學的明白、用的順手。C 作為一門工程實用性極強的語言,提供了對操作系統和內存的精準控制,高性能的運行時環境,源碼級的跨平台編譯等優點,才是我們必須學習和使用 C 的理由。
同時,幸運的是 C 也是個有趣的東西,對編程的認知越深,就會越覺得有意思,我簡單列舉一些 C 的優點:
1、結構化設計語言,語法清晰、結構簡單,模塊化使得程序的各個部分除了必要的信息交流外彼此獨立,便於開發、調試
2、運算符多,把括弧、賦值、強制類型轉換等都作為運算符處理,靈活使用各種運算符可以實現在其它高級語言中難以實現的運算。
3、數據結構豐富,能實現各種復雜的數據類型的運算,引入指針、結構體概念使程序效率更高。
4、為操作系統而生,可以像匯編語言一樣對位、位元組和地址進行操作,允許直接訪問物理地址對硬體進行操作,把高級語言的基本結構和語句與低級語言的實用性結合起來。
5、程序執行效率高,一般比匯編程序生成的目標代碼效率低 10%~20%。
6、可移植性好,C 語言抽象了針對 CPU 編程的細節,能廣泛應用於針對大型操作系統和系統軟體的編寫。
7、具備強大的繪圖功能,和 C++ 一樣也可以寫出很優雅的二維、三維圖形和動畫。
有人說,C 是 C++ 的子集,C 能做到的事,C++ 一樣能做到,並且還可以做的更好,如:三大面向對象特性、GUI 編程,誠然,我承認在 GUI 編程領域 C++ 占據著絕對的統治地位,至今無人能撼動。但真的有必要用 C++ 來替代 C 完成工作嗎?很多時候 C++ 解決問題的思路真的比 C 更先進嗎?
C 和 C++ 比較
1、隱式操作:C 簡單直接、結構清晰,每行代碼都能清楚的被反匯編成相應的語句,系統會嚴格按照你的代碼去執行。而 C++ 則不盡然,簡單的語句也說不清楚究竟有多少次構造和拷貝,這樣編寫底層代碼是完全不行的,底層需要精準和嚴格的控制。
2、語言介面:現代軟體工程項目的開發,不但對性能有很高要求,對於語言介面的對接能力也有很高要求,因為偌大的一個項目很少僅使用一種語言來進行開發,對於 底層,C++ 對內存和硬體的控制不如 C 簡潔精準;對於很多動態語言和中間件,如:PHP、Python 和 Apache、Redis,都受了 C 的很大影響,甚至就是 C 開發出來的東西,對接起來非常方便。沒錯兒,其實 C++ 採用迂迴的方式也能對接的,但是,遠遠不如 C 方便,開發和維護成本非常高。
硬體層:
1、分配內存:系統加電後運行,經過匯編初始化棧,然後再跳轉到 C 語言的 start_init() 函數去,這時候內存分配機制都還沒有建立,C++ 如何定義類?如何實例化對象?
2、標准庫依賴:C 的所有特性都可以不依賴任何庫運行,如有必要,可以按照特定需求自己編寫庫。
3、處理器兼容:C++ 的類是依賴基地址+偏移地址的定址方式,很多微處理器只有簡單的給定地址定址,不支持一條語句實現 base + offset 的定址機制,很多 C++ 代碼編譯出來需要更多的指令來運算地址,導致性能下降了太多。
4、應用層:C++ 在做應用層尤其是 GUI 編程,這是 C++ 的傳統強項,我一直堅持 C 也能優雅的做出圖像和動畫,但開發效率確實較 C++ 低很多,最近有個很火的 RUST 語言,號稱是未來唯一能取代 C++ 的編程語言,感興趣的同學可以多了解下。
由上可知,操作系統、編譯原理、數據結構與演算法等等基礎知識,是深入理解、掌握和靈活運用 C 的重要前提,現階段程序員職業生涯超過一半的熱門方向直接或間接與 C 有關,我想,學好 C 的重要性也就不言而喻了。
7. C語言的發展前景如何
C語言是一門面向過程的、抽象化的通用程序設計語言,廣泛應用於底層開發。
C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產生少量的機器語言以及不需要任何運行環境支持便能運行的高效率程序設計語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著跨平台的特性,以一個標准規格寫出的C語言程段旦宴序可在包括類似嵌入式處理器以及超級計算機等作業平台的許多計算機平台上進行編譯。
C語言描述問題比匯編語言迅速、工作量小、可讀性好握銀、易於調試、修改和移植,而代碼質量與匯編語言相當。C語言一般只比匯編語言代碼生成的目標程序效率低10%-20%。因此,C語言可以編寫系統軟體。
當前階段,在編程領域中,C語言的運用非常之多,它兼顧了高級語言遲薯和匯編語言的優點,相較於其它編程語言具有較大優勢。計段旦宴算機系統設計以及應用程序編寫是C語言應用的兩大領域。同時,C語言的普適較強,在許多計算機操作系統中都能夠得到適用,且效握銀率顯著。
C語言擁有經過了漫長發展歷史的完整的理論體系,在編程語言中具有舉足輕重的地位。
8. C語言的特點有哪些
C語言是中級語言
C語言通常稱為中級計算機語言。中級語言並沒有貶義,不意味著它功能差、難以使用、或者比B A S I C、P a s c a l那樣的高級語言原始,也不意味著它與匯編語言相似,會給使用者帶來類似的麻煩。C語言之所以被稱為中級語言,是因為它把高級語言的成分同匯編語言的功能結合起來了。表1 - 1表明了C語言在計算機語言中所處的地位。
作為中級語言,C允許對位、位元組和地址這些計算機功能中的基本成分進行操作。C語言程序非常容易移植。可移植性表示為某種計算機寫的軟體可以用到另一種機器上去。舉例來說,如果為蘋果機寫的一個程序能夠方便地改為可以在IBM PC 上運行的程序,則稱為是可移植的。
所有的高級語言都支持數據類型的概念。一個數據類型定義了一個變數的取值范圍和可在其上操作的一組運算。常見的數據類型是整型、字元型和實數型。雖然C語言有五種基本數據類型,但與P a s c a l或A d a相比,它卻不是強類型語言。C程序允許幾乎所有的類型轉換。例如,字元型和整型數據能夠自由地混合在大多數表達式中進行運算。這在強類型高級語言中是不允許的。
C語言的另一個重要特點是它僅有3 2個關鍵字,這些關鍵字就是構成C語言的命令。和IBM PC的B A S I C相比,後者包含的關鍵字達1 5 9個之多。
C語言是結構化語言
雖然從嚴格的學術觀點上看,C語言是塊結構(b l o c k - s t r u c t u r e d)語言,但是它還是常被稱為結構化語言。這是因為它在結構上類似於A L G O L、P a s c a l和M o d u l a - 2(從技術上講,塊結構語言允許在過程和函數中定義過程或函數。用這種方法,全局和局部的概念可以通過「作用域」規則加以擴展,「作用域」管理變數和過程的「可見性」。因為C語言不允許在函數中定義函數,所以不能稱之為通常意義上的塊結構語言)。
結構化語言的顯著特徵是代碼和數據的分離。這種語言能夠把執行某個特殊任務的指令和數據從程序的其餘部分分離出去、隱藏起來。獲得隔離的一個方法是調用使用局部(臨時)變數的子程序。通過使用局部變數,我們能夠寫出對程序其它部分沒有副作用的子程序。這使得編寫共享代碼段的程序變得十分簡單。如果開發了一些分離很好的函數,在引用時我們僅需要知道函數做什麼,不必知道它如何做。切記:過度使用全局變數(可以被全部程序訪問的變數)會由於意外的副作用而在程序中引入錯誤。
結構化語言比非結構化語言更易於程序設計,用結構化語言編寫的程序的清晰性使得它們更易於維護。這已是人們普遍接受的觀點了。C語言的主要結構成分是函數C的獨立子程序。
在C語言中,函數是一種構件(程序塊),是完成程序功能的基本構件。函數允許一個程序的諸任務被分別定義和編碼,使程序模塊化。可以確信,一個好的函數不僅能正確工作且不會對程序的其它部分產生副作用。
1.2.3 C語言是程序員的語言
也許你會問「所有的計算機語言不都是程序員使用的嗎?」,回答是斷然的「否」。我們考慮典型的非程序員的語言C O B O L和B A S I C。C O B O L的設計使程序員難以改變所編寫代碼的可靠性,甚至不能提高代碼的編寫速度。
然而C O B O L設計者的本意卻是打算使非程序員能讀程序(這是不大可能的事)。注意,這並不是攻擊C O B O L的優點,而是想指出,它沒有被設計成為程序員的理想語言。BASIC 的主要目的是允許非專業程序員在計算機上編程解決比較簡單的問題。與其形成鮮明對照的是C 語言,由於程序生成、修改和現場測試自始至終均由真正的程序員進行,因而它實現了程序員的期望:很少限制、很少強求、塊結構、獨立的函數以及緊湊的關鍵字集合。用C語言編程,程序員可以獲得高效機器代碼,其效率幾乎接近匯編語言代碼。
C語言被程序員廣泛使用的另一個原因是可以用它代替 rget="_blank" class="keylink">匯編語言。匯編語言使用的匯編指令,是能夠在計算機上直接執行的二進制機器碼的符號表示。匯編語言的每個操作都對應為計算機執行的單一指令。雖然匯編語言給予程序員達到最大靈活性和最高效率的潛力,但開發和調試匯編語言程序的困難是難以忍受的。非結構性使得匯編語言程序難於閱讀、改進和維護。也許更重要的是,匯編語言程序不能在使用不同C P U的機器間移植。
最初,C語言被用於系統程序設計。一個「系統程序」是一大類程序的一部分,這一大類構成了計算機操作系統及實用程序。通常被稱為系統程序的有:
�6�1 操作系統。
�6�1 翻譯程序。
�6�1 編輯程序。
�6�1 匯編程序。
�6�1 編譯程序。
�6�1 資料庫管理程序。
隨著C語言的普及,加之其可移植性和高效率,許多程序員用它設計各類程序。幾乎所有的計算機上都有C語言編譯程序,這使我們可以很少改動甚至不加改動地將為一種機器寫的C 語言源程序在另一種機器上編譯執行。可移植性節省了時間和財力。
C語言不僅在速度和結構上有它的優勢,而且每個C語言系統都提供了專門的函數庫,程序員可以根據不同需要對其進行剪裁,以適應各種程序的設計。由於它允許(更准確地說是鼓勵)分別編譯,所以C語言可使程序員方便地管理大型項目,最大限度地減少重復勞動。
9. c語言的主要用途
C語言是一種計算機程序設計語言,它既具有高級語言的特點,又具有匯編語言的特點。它由美國貝爾研究所的D.M.Ritchie於1972年推出,1978年後,C語言已先後被移植到大、中、小及微型機上,它可以作為工作系統設計語言,編寫系統應用程序,也可以作為應用程序設計語言,編寫不依賴計算機硬體的應用程序。它的應用范圍廣泛,具備很強的數據處理能力,不僅僅是在軟體開發上,而且各類科研都需要用到C語言,適於編寫系統軟體,三維,二維圖形和動畫,具體應用比如單片機以及嵌入式系統開發。
基本特性
1、C是高級語言:它把高級語言的基本結構和語句與低級語言的實用性結合起來。工作單元。
2、C是結構式語言:結構式語言的顯著特點是代碼及數據的分隔化,即程序的各個部分除了必要的信息交流外彼此獨立。這種結構化方式可使程序層次清晰,便於使用、維護以及調試。C 語言是以函數形式提供給用戶的,這些函數可方便的調用,並具有多種循環、條件語句控製程序流向,從而使程序完全結構化。
3、C語言功能齊全:具有各種各樣的數據類型,並引入了指針概念,可使程序效率更高。而且計算功能、邏輯判斷功能也比較強大,可以實現決策目的的游戲。
4、C語言適用范圍大:適合於多種操作系統,如Windows、DOS、UNIX等等;也適用於多種機型。C語言對編寫需要硬體進行操作的場合,優於其它高級語言,有一些大型應用軟體也是用C語言編寫的。
5、C語言應用指針:可以直接進行靠近硬體的操作,但是C的指針操作不做保護,也給它帶來了很多不安全的因素。C++在這方面做了改進,在保留了指針操作的同時又增強了安全性,受到了一些用戶的支持,但是,由於這些改進增加語言的復雜度,也為另一部分所詬病。Java則吸取了C++的教訓,取消了指針操作,也取消了C++改進中一些備受爭議的地方,在安全性和適合性方面均取得良好的效果,但其本身解釋在虛擬機中運行,運行效率低於C++/C。一般而言,C,C++,java被視為同一系的語言,它們長期占據著程序使用榜的前三名。
10. C語言在編程語言發展歷史中處於什麼地位,對編程語言的發展產生了什麼影響,對
編程語言的發展歷程可以簡單劃分為以下幾個階段 :
機器語言——>匯編語言——>高級計算機語言
1、機器語言:最初的計算機所使用的是由「0」和「1」組成的二進制數,二進制是計算機的語言的基礎。由於這種語言是直接對計算機硬體進行操作,所以在特定型號的計算機上面,運算效率也是很高的,機器語言的出
現對於未來的計算機語言發展起到了很好的推動作用,所以機器語言也是第一代計算機語言。
2、匯編語言:匯編語言是在機器語言的基礎上誕生的一門語言,用一些簡潔的英文字母、符號串來替代一個特定的指令的二進制串。匯編語言同樣也是直接對硬體進行操作,對於計算機硬體的功能和特長的發揮已有了很大進步,它精煉而質量高,所以至今仍是一種常用的程序開發語言。
3、高級計算機語言:在與計算機的不斷交流中,人們對計算機程序的移植性需求不斷提高,此時急需要一種不依賴於特定型號的計算機的語言,用這種語言編寫的程序能在在各種平台都正常運行。
C語言是一種高級計算機語言,它既有高級語言的特點,又具有匯編語言的特點。它可以用來編寫系統軟體,也可以用來編寫應用軟體。C語言語法中對操作符的大量靈活的使用,極大的影響了後來的一批高級程序語言,是其他高級語言的基礎。
請採納,謝謝