① 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程序設計的教學工作涉及的因素很多,如果以項目來驅動教學,首先讓學生樹立面向工程的思想,其次把教學從單一的「結構化程序設計」向「結構化與面向對象並舉」轉變,最後特別要培養學生養成良好的編碼風格,從而使他們學會能夠「干什麼」,那麼我們認為教學目的就達到了。
② C語言有什麼用
既然你都過2級了 肯定是非計算機專業了 那c就一點用都沒有了 進一步學習 看下面書籍吧
這是以前看到的一篇文章,感覺很好。不過裡面很多說都絕版了上網慢慢找吧
程序員之路——如何學習C語言並精通C語言
程序員之路——如何學習C語言
學習C語言不是一朝一夕的事情,但也不需要花費十年時間才能精通。如何以最小的代價學習並精通C語言是本文的主題。請注意,即使是「最小的代價」,也絕不是什麼捷徑,而是以最短的時間取得最多的收獲,同時也意味著你需要經歷艱苦的過程。
一、要讀就讀好書,否則不如不讀
所有初學者面臨的第一個問題便是:如何選擇教材。好的開始是成功的一半,選擇一本優秀的教材是事半功倍的關鍵因素。不幸的是,學校通常會幫你指定一本很差勁的C語言課本;而幸運的是,你還可以再次選擇。
大名鼎鼎的譚浩強教授出了一本《C語言程序設計》,據說發行量有超過400萬,據我所知,很多學校都會推薦這本書作為C語言課本。雖然本人的名字(譚浩宇)跟教授僅僅一字之差,但我是無比堅定地黑他這本書的。這本書不是寫給計算機專業的學生的,而是給那些需要考計算機等級考試的其它專業學生看的。這本書的主要缺點是:例子程序非常不專業,不能教給你程序設計應該掌握的思考方式;程序風格相當地不好,會讓你養成亂寫代碼的惡習;錯誤太多,曾經有人指出過這本書的上百個錯誤,其中不乏關鍵的概念性錯誤。好了,這本書我也不想說太多了,有興趣大家可以網路一下:)
Kernighan和Ritchie的《The C Programming Language》(中譯名《C程序設計語言》)堪稱經典中的經典,不過舊版的很多內容都已過時,和現在的標准C語言相去甚遠,大家一定要看最新的版本,否則不如不看。另外,即使是最經典最權威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的。《C語言參考手冊》就是《C Reference Manual》,是C語言標準的詳細描述,包括絕大多數C標准庫函數的細節,算得上是最好的標准C語言的工具書。順便提一句,最新的《C程序設計語言》是根據C89標准修訂的,而《C語言參考手冊》描述的是C99標准,二者可能會有些出入,建議按照C99標准學習。還有一本《C和指針》,寫得也是相當地不錯,英文名是《Pointers on C》,特別地強調指針的重要性,算是本書的一個特點吧。不過這本書並不十分適合初學者,如果你曾經學過C語言,有那麼一些C語言的基礎但又不是很扎實,那麼你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。
如果你已經啃完了一本C語言教材,想要更進一步,那麼有兩本書你一定要看。首先是《C Traps and Pitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊子,內容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,裡面提到的很多C語言的缺陷都已被改進,不過能夠了解一些歷史也不是什麼壞事。然後你可以挑戰一下《Expert C Programming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細讀完並能透徹理解,你便可以放心大膽地在簡歷上寫「精通C語言」了。
切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎知識。此時,你要仔細分析自己需要補充哪些內容,然後再去書店尋找講述的這些內容的書籍。把基礎知識補充完畢再回頭來學習,才會真正的事半功倍。
二、Unix/Linux還是Windows,這是個很大的問題
不同的編程環境會造就出不同思維的程序員。Windows的程序員大多依賴集成開發環境,比如Visual Studio,而Unix程序員更加鍾愛Makefile與控制台。顯而易見,集成開發環境更容易上手,在Windows上學習C語言,只需要會按幾個基本的Visutal C++工具欄按鈕就可以開始寫Hello, World!了,而在Unix下,你需要一些控制台操作的基本知識。有人也許認為Unix的環境更簡潔,但習慣的力量是很大的,大家都很熟悉Windows的基本操作,而為了學習C語言去專門裝一個Unix系統,似乎有點不劃算。
對於一個只懂得Windows基本操作、連DOS是什麼都不知道的新手而言,盡快做一些有趣而有意義的事情才是最重要的。用C語言寫一個小程序遠比學習ls、cat等命令有趣,況且我們要專注於C語言本身,就不得不暫時忽略一些東西,比如編譯鏈接的過程、Makefile的寫法等等等等。
所以我建議初學者應該以Visual C++ 6.0(不是VisualC++ .NET)或者Dev C++作為主要的學習環境,而且千萬不要在IDE的使用技巧上過多糾纏,因為今後你一定要轉向Unix環境的。Visual C++ 6.0使用很方便,調試也很直觀,但其默認的編譯器對C標準的支持並不好,而Dev C++使用gcc編譯器,對C99的標准都支持良好。使用順帶提一下,很多大學的C語言課程還在使用Turbo C 2.0作為實驗環境,這是相當不可取的,原因其一是TC 2.0對C標准幾乎沒有支持,其二是TC 2.0編譯得到的程序是16位的,這對今後理解32位的程序會造成極大的困擾(當然,用djgpp之類的東西可以使TC 2.0編譯出32位程序,不過那過於復雜了)。
等你學完一本C語言的教材,你一定要轉向Unix平台繼續學習,幾乎所有的C語言高級教程都是基於Unix平台的(比如《C專家編程》)。轉變的過程是痛苦的,你需要面對的是各種紛繁復雜的命令,完全不同於Windows平台的思考方式,但是這種痛苦是值得的。Unix與C是共生的,Unix的思考方式和習慣更加符合C語言的思考方式和習慣。在Unix下,你可以找到無數優秀的源代碼供你盡情閱讀,你可以方便地查看某個庫函數的聯機手冊,還可以看到最優秀的代碼風格
歸結起來就是一句話:初學C語言,建議使用Windows系統和集成開發環境,在准備向「高手」方向努力時,請先轉向Unix平台。
三、萬事俱備,你就是東風
書已選定,環境配置完成,正所謂萬事俱備,只欠你自己的努力了。請從書的前言開始,仔細地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是錯誤的做法。前言是作者對整本書的大體介紹,作者一般會告訴你需要什麼基礎才能夠順利閱讀本書,這可以幫助你檢驗自己的基礎知識是否已經具備。看完前言,還要瀏覽一下目錄,了解一下書的整體結構,順便給自己安排一下學習計劃。
學習C語言,必需注意每一個細節,書上的例子代碼一定要自己親自敲一遍,編譯執行輸出都跟書上說的一致才能算是學完了一個例子,如果不一致,就要仔細找原因。出了書本上有的例子,自己還要「創造」一些例子,比如學習運算符優先順序的時候,可以寫幾個相同的表達式,在不同的位置加上括弧,看看有哪些不同的行為,比如*p++和(*p)++,又比如a = b == c、(a = b) == c和a = (b == c)等等。自己抄的書上的例子以及改造之後的例子,還有自己「創造」的例子,都應該仔細地歸類保存,並且要在源代碼中寫上簡短的注釋,闡述這個例子的意圖。
例子之後就是習題了,我建議初學者把所有的習題都獨立做一遍,然後對照答案的代碼,看看自己的代碼有那些不足,再試著修改自己的代碼。很多人不重視習題,這是極大的錯誤,因為作者通常會在習題中說明一些重要的道理,而不是單純地檢驗前面的知識。
也許你認為這樣學習太慢,其實不然。學得細致就不用走回頭路,等你學到後面才發現自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應該完成數千行乃至上萬行的代碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今後繼續學習的一筆財富。以我自己舉例,閱讀《Windows核心編程》時(我只閱讀了3/4的內容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統計),時隔多日,我早已記不清Windows的系統編程了,但只要花幾分鍾翻出以前的代碼看看,便會重新瞭然於胸。所謂好記性不如爛筆頭,就是這個道理。
仔細讀書、認真抄寫源代碼、獨立完成習題外加更進一步的實驗,最後將所有的代碼留下,成為自己的經驗和財富,絕對的辛苦,也絕對的事半功倍。當然,這種方式只適合學習需要精通的技術,如果不是學習C語言,你還要具體情況具體分析。
寫到最後,還有非常非常重要的一點沒有提及——代碼風格,從最開始學習就必須強迫自己模仿最優秀的代碼風格
③ C語言什麼最重要啊
個人覺得是很好的一篇文字,說得很清楚:
C是一個結構化語言,如譚老爺子所說:它的重點在於演算法和數據結構。C程序的設計首要考慮的是如何通過一個過程,對輸入(或環境條件)進行運算處理得到輸出(或實現過程(事務)控制),而對於C++,首要考慮的是如何構造一個對象模型,讓這個模型能夠契合與之對應的問題域,這樣就可以通過獲取對象的狀態信息得到輸出或實現過程(事務)控制。
所以C與C++的最大區別在於它們的用於解決問題的思想方法不一樣。之所以說C++比C更先進,是因為「 設計這個概念已經被融入到C++之中 」,而就語言本身而言,在C中更多的是演算法的概念。那麼是不是C就不重要了,錯!演算法是程序設計的基礎,好的設計如果沒有好的演算法,一樣不行。而且,「C加上好的設計」也能寫出非常好的東西。
對語言本身而言,C是C++的子集,那麼是什麼樣的一個子集?從上文可以看出, C實現了C++中過程化控制及其它相關功能,而在C++中的C(我稱它為「C+」),相對於原來的C還有所加強,引入了重載、內聯函數、異常處理等等玩藝兒,C++更是拓展了面向對象設計的內容,如類、繼承、虛函數、模板和包容器類等等。
再提高一點,在C++中,數據封裝、類型這些東東已不是什麼新鮮事了,需要考慮的是諸如:對象粒度的選擇、對象介面的設計和繼承、組合與繼承的使用等等問題。
所以相對於C,C++包含了更豐富的「設計」的概念,但C是C++的一個自洽子集,也具有強大的功能,同樣值得學習。
幾點學習建議:
1.基本概念很重要。無論學C,還是學C++,基本概念都是第一位的,也是比較困難的,但只有把握了基本概念才能把握整體脈絡,才能居高臨下。
2.C是C++的子集,它的基本概念和設計方法相對比較容易理解,初學者可從它入手。
3.如果要學好C++,建議初學者最好別在如VC,BCB平台下寫程序,那種自動化的代碼生成,花花綠綠的界面,會讓你手足無措。最好先找一片空地(unix,dos),從頭做起,寫幾個大點的程序,數個回合,再到VC,BCB下看看,你會輕松得很。在我看來,學好C/C++是成為VC,BCB高手的必由之路。
4.不要妄想速成,必須得一個byte,一個bit的去摳,盡量搞清楚每一個問題。
5.幾本好書:
機械工業出版社的那套「計算機科學叢書」從C到C++,到面向對象設計,一應俱全,都TMD是經典中的經典,而且價格公道,童叟無欺。
國內也有幾本好書,譚老爺子的書好倒是好,就是程序錯誤太多。強烈推薦清華周之英的《現代軟體工程》(上、中、下),它是我所見到的國內少有的一本好書,精華的精華,要點的要點,細細品來,至少也屬降龍十八掌等級的東東。
如果還是有人想學習C/C++的話, 有一些小問題我還是樂意解答的. 但是我認為學習C/C++是不重要的, 重要的是如何鍛煉你的思路. 不要找一些連自己都搞不清的問題去做.
我認為雖然 "潭浩強" 同志有騙錢的嫌疑( 我手頭就有一本幾乎一模一樣的英文書 ), 但是, 是他把這本入門手冊引入中國, 使無數程序員了解了C語言, 我想他的功勞也是不可磨滅的. 在< C語言程序設計 >這本書中所有的例子都可以用做鍛煉思路的基石, 他對大家的編程是很有幫助的. 我認為是值得一買的. 去思考課後的例子對你的編程很有幫助. 不要小看一個一個簡單的例子, 他們是你通往成功的道路.
當你基本能夠掌握了上一本書中例子後, 你就要自己找一些例子程序去看. 開始可能是看不懂, 但是只要努力就沒有什麼問題. 當你看過幾個較大的例子之後, 你會茅塞頓開, ( 大量閱讀例子程序是學習C/C++的捷徑 ). 你會發現, 你的水平有了顯著的提高. 你看的例子越多, 你對 Windows/DOS 了解的越多. 最好能夠再看一些關於系統知識的書籍. 他會對你的編程很有幫助的.
這是我學習C/C++的一點心得, 希望對沒有被我嚇到而要繼續學習C/C++的朋友們有一些幫助. 免得有些同志說我破壞中國軟體人才的發展.
在最後我祝願所有堅持學習C/C++的朋友們成功! 同時感謝閱讀過我文章的同志們.
想學好C++,非學C不可!!!
今天我這么肯定的在這里講這番話,是不想初學者陷入到語言越新越好的誤區,本來這個題目就不是很嚴謹,但是我有幾句話必須講講,為C平反!!
C++與C有什麼不同呢?我們現在一步步地來分析一下
一、類,類我並不說它有什麼不好,但是對於初學者,它是一個累贅。類的封裝使得初學者對程序產生厭倦,感到不適和麻煩。
二、引用,引用是C++中最臭屁的東西了,最好盡量不要用它,我就是從來不用引用,除非萬不得已。引用對於初學者就更容易產生混淆,不知道哪個是引用,哪個是變數。
三、函數的重載,初學者學函數的重載好像沒什麼壞處,但是,這會使初學者潛意識里對C語言的變數類型的重要性產生淡化,要記住C語言是對變數類型最敏感了的,變數的類型在C語言里的重要性是不言而喻的。
四、流操作符,和上面同樣的道理,使得對變數類型的重要性產生淡化,況且,cin這個東東有點兒不怎麼方便,有時會產生使初學者莫名其妙的結果。
五、操作符重載,典型的高級應用,初學者可能根本用不著,這個東東會讓他們覺得C++很難,門檻高,看不懂…………。
六、繼承,以及虛函數,典型的模仿四不象,這種狗屁東西除了看起來深奧,實用價值很低………………。我怎麼可能把某個類的類型的指針去指向另一個不同類型但是是繼承關系的類,來實現什麼動態聯編,暈…………
………………還有些東東我就不發表評論了,如:new,delete操作符等…………
七、誤區:以問答形式:
問:C++是面向對象化的而C是面向過程化的?
答:第二對,第一問錯,C++並非完全面向對象化,真正的面向對象化的語言恐怕只有Java才算得上。
問:C++能實現C所不能的功能嗎?
答:至少我還沒有發現……
問:學了C再學C++有障礙嗎?比如程序設計思想……
答:至少我還沒有看見誰有此症狀。
問:學了C再學C++又要重頭開始嗎?
答:不,C++下可以實現C語言的一切功能。
問:我學完了C一定還要學C++才能編程嗎?
答:完全沒必要。
問:C++比C好在哪裡?
答:更加符合軟體工程學
問:學完了C再學C++是不是很容易?
答:那要看你是不是真正的學完了C語言,我從C到C++就一個星期的睡覺前的時間看兩眼書,然後就大徹大悟。再跑到這里來發表些狗屁文章了。
最近在網上看到了很多人的學習方法,本人非常不贊同。很多人都想一口吃個胖子,要學就想學最新的,好象沒有人願意再去學那些老的,舊的編程語言了。但你們能學的懂嗎?不學TC2。0等那些較早的優秀編程語言,你們能理解的了VC6。0?如果你真的能,我寧願做你的徒弟!真是奇怪,那些最基本的語言都不懂的人,怎麼可能去理解那些最新的編程語言?我學編程有三年了吧。成績也不算多,只有一個計算機四級證和一個高程證,但我覺得我在學VC的時候還有很多的不明白的地方。沒有人來教我,只能靠我自己,包括所有的成績在內,我都是靠自己,我從不報班。學VC的半年多來,我想我已經基本入門,但依然有很多的困惑。剛開始學VC,就面臨一個項目,我真的猶如笨蛋一般,四處嚇摸,毫無頭緒,最後勉勉強強才算做個差不多。學好VC再去學其他的高級WINDOWS編程,我想那真是輕而易舉,畢竟WINDOWS的內部的很多東西都能直接被VC調用,你首先就可以對WINDOWS有個全新的認識,再去學其他的語言豈能不簡單?
我的感覺是,面向過程和面向對象,其實都很重要的,在VC里也依然需要面向過程,很多東西都是一環扣一環,沒有面向過程的思想,怎麼可能去編程呢?建議多去看看有關WINDOWS編程的書,但多數都是比較老的書呦!我依然記得當年整天進行TC編程的辛苦,但我依然很懷念當年的勞動付出,畢竟我獲得了我想獲得的一切——編程思想。我覺得一個好的編程思想,絕對比你去學一門計算機語言好重要的多。要形成自己的編程風格。一個好的編程思想在你的頭腦中一旦形成,學習什麼語言都會很輕而易舉,因為此時的你不在是簡簡單單的學習,而是來驗證!
④ C語言學習的重要性
現在學習軟體這方面的前景還是蠻好的
像學習C語言的吧 運用還是比較普遍的
所以當然很重要了
學軟體這方面 不是說只要學習書上片面的東西就好了 實踐操作還是相當的重要的
我推薦你去威迅教育看下
他們是理論與實踐想結合 擁有自己的軟體工廠 讓學員學到更多的東西
找工作 就不是問題了…………
⑤ C語言有何重要性,那怎樣才能去學好,有什麼技巧嗎
我是做軟體的,一般有朋友問我怎麼學編程,我都強調兩個字「動手」,其實編程沒什麼,就是熟練,牛人都是靠積累起來的,光看書永遠學不會,只有動手編寫你才能發現問題,書上一些簡單的例子,看是很容易看懂,但是合上書,自己來編,往往很簡單的一段程序都可以讓你發現自己很多錯誤,不斷改正這些錯誤,慢慢積累,不知不覺你就成牛人了。C語言的課本應該都有一個經典的例子,就是編寫程序用*號組成一個菱形,我剛學的時候,看書看懂了,結果合上書自己寫,才寫得出兩行而已。。。以前在學校時候,經常調試一段程序就調一通宵,天亮了直接跑去吃早餐,就是靠這么積累起來的。所以一定要自己動手。
最後,祝你成功。
⑥ C語言對學計算機的重要性
恩
其實不學的話也沒關系
但是c語言怎麼說也是計算機語言的鼻祖。。
學好c了
對以後學其它語言有幫助的。
好好學吧。
⑦ 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實現的對比等。就像剛才說的,第三點的關注度還在提高中。
以上個人經驗,不一定正確,只是希望作為你的一個參考,給你些幫助。就像我剛學的時候渴求的那些幫助一樣。 :-)
⑧ 你認為C語言有何意義
C語言是程序員必學語言啊,而且所有語言基本上都是建立在C語言之上的,它是計算機語言基礎,作為程序員一定要好好學。
⑨ 學C語言有何意義
C語言實際上已經成為了中級語言的事實上的標准,如果你從事嵌入式開發、晶元設計等,C語言是必須懂的基礎;在高級語言上,C語言的簡練和精確也具備特殊的優勢;VC的強大在Windows平台上其它語言更是難與之相匹敵,在Unix/Linux平台上,C語言也是最終要的語言,Linux的內核也主要是以C語言寫的。
當然C語言也有缺點:就是難,容易出錯,因為它的數據類型需要精確,而導致不夠深入理解的程序員常容易犯錯。
一句話:專業的編程,一定要學C語言;業余水平的,可以直接從VB等入手。