當前位置:首頁 » 編程語言 » 好好學c語言

好好學c語言

發布時間: 2023-02-10 01:39:04

1. 學會c語言的好方法

每個人在初學C語言時都有這樣或那樣的疑惑,而且沒有語言基礎的朋友也不清楚怎麼學。結合我自己的經歷,給你提供一下幾點經驗:

1:必須有一本好的教材。用譚浩強的《c程序設計》
就不錯。目前在這方面是銷售量最高的。

2:必須要問!只有書的話是不夠的,畢竟很多東西不是一下子就能理解了的,一定要多問!

3:做題。《C程序設計》
的每一道題目都要做完!不會的話就請教別人,但是必須先自己思考,寫寫代碼,寫錯了要自己調試,這是一個提高的過程,不要一遇到不會的或者錯誤的代碼就立馬問別人。

4:多看別人的程序,可以上網上找那個C語言經典演算法100例,把每一個代碼都研究透。

上面的都做完了,你C語言
應該是比較熟練了。

另外說一句,方法其實並不是最重要的。最重要的是你要有毅力,要有學好C語言的決心!更要有信心!

不付出努力,是不會得到回報的。

2. 怎麼樣才可以好好學習c語言

最近很多人都在問如何學習編程。我覺得學習編程最重要的是入門,如果你入門的時候有一個好的方法和思路,打下比較扎實的基礎,對今後的編程工作是很有益處的。即使在學習新的編程語言也無所謂,因為它們有很多相通之處,可以相互借鑒。

我認為可以先學習一下pascal,這個語言比較嚴謹,適合初學者。pascal它被稱為教學語言,結構嚴謹,不像C語言那麼靈活,易於理解和學習。 然後可以繼續學習C語言,這個語言比較靈活。有了pascal的基礎,在進行C語言編程就不會因為C語言的靈活而有問題 。後面的就可以學習VC什麼的了。
C語言的書推薦譚浩強的,比較好。
我當時學習pascal和C語言的時候是將書後的習題都做了一遍,感覺效果很好。
當然了,學習什麼語言也要看你具體准備從事什麼行業。例如你要進行嵌入式開發,C就是很好的選擇,如果是Windows開發,那麼VC就不錯。還有資料庫方面的開發、網路開發等等。不同的語言適合不同的方面。要看自己的選擇的,呵呵 。

還有很多人說自己的基礎很差,甚至中學畢業什麼的。其實這個並不重要,比較說英語,在計算機語言里所用到的單詞量很少,而且都是常用詞,經常使用就記住了。當然,如果你要看原文資料或者幫助的話,專業詞彙比較多,不過在金山詞霸的幫助下,經常看,也是沒什麼大的問題的。至於數學什麼的,其實數學只是培養你一個邏輯思維能力,在初學編程的時候影響不是很大。況且,作為一個基礎編程人員來說,上面還有系統分析師、項目經理,他們會把需求分析、概要設計和詳細設計做好的,你只要按照文檔寫代碼就OK了。不過,要上更上一步的話,其他基礎知識就非常重要了,畢竟你不能寫一輩子代碼。

在你學習好C語言以後,個人建議好好學習一下數據結構和軟體工程。這兩門對你的水平提高都是很有幫助的。特別是軟體工程,它能夠使你按照科學的工程方法進行軟體開發,對今後的發展很有好處。
只是一家之言,有不到之處,還望見諒!

參考資料:
另外,團IDC網上有許多產品團購,便宜有口碑

3. 如何學好C語言

分類: 電腦/網路 >> 程序設計 >> 其他編程語言
解析:

我以前C++時在網上看到的.我也同樣適用

1.把C++當成一門新的語言學習(和C沒啥關系!真的。);

2.看《Thinking In C++》,不要看《C++變成死相》;

3.看《The C++ Programming Language》和《Inside The C++ Object Model》

,不要因為他們很難而我們自己是初學者所以就不看;

4.不要被VC、BCB、BC、MC、TC等詞彙所迷惑——他們都是集成開發環境,而我

們要學的是一門語言;

5.不要放過任何一個看上去很簡單的我程問題——他們往往並不那麼簡單,

或者可以引伸出很多知識點;

6.會用Visual C++,並不說明你會C++;

7.學class並不難,template、STL、generic programming也不過如此——難的

是長期堅持實踐和不遺餘力的博覽群書;

8.如果不是天才的話,想學編程就不要想玩游戲——你以為你做到了,其實你

的C++水平並沒有和你通關的能力一起變高——其實可以時刻記住:學C++是為

了編游戲的;

9.看Visual C++的書,是學不了C++語言的;

10.浮躁的人容易說:XX語言不行了,應該學YY;——是你自己不行了吧!?

11.浮躁的人容易問:我到底該學什麼;——別問,學就對了;

12.浮躁的人容易問:XX有錢途嗎;——建議你去搶銀行;

13.浮躁的人容易說:我要中文版!我英文不行!——不行?學呀!

14.浮躁的人容易問:XX和YY哪個好;——告訴你吧,都好——只要你學就行;

15.浮躁的人分兩種:a)只觀望而不學的人;b)只學而不堅持的人;

16.把時髦的技術掛在嘴邊,還不如把過時的技術記在心裡;

17.C++不僅僅是支持面向對象的程序設計語言;

18.學習編程最好的方法之一就是閱讀源代碼;

19.在任何時刻都不要認為自己手中的書已經足夠了;

20.請閱讀《The Standard C++ Bible》(中文版:標准C++寶典),掌握C++標准



21.看得懂的書,請仔細看;看不懂的書,請硬著頭皮看;

22.別指望看第一遍書就能記住和掌握什麼——請看第二遍、第三遍;

23.請看《Effective C++》和《More Effective C++》以及《Exceptional C++

》;

24.不要停留在集成開發環境的搖籃上,要學會控制集成開發環境,還要學會用

命令行方式處理程序;

25.和別人一起討論有意義的C++知識點,而不是爭吵XX行不行或者YY與ZZ哪個

好;

26.請看《程序設計實踐》,並嚴格的按照其要求去做;

27.不要因為C和C++中有一些語法和關鍵字看上去相同,就認為它們的意義和作

用完全一樣;

28.C++絕不是所謂的C的「擴充」——如果C++一開始就起名叫Z語言,你一定不

會把C和Z語言聯系得那麼緊密;

29.請不要認為學過XX語言再改學C++會有什麼問題——你只不過又在學一門全

新的語言而已;

30.讀完了《Inside The C++ Object Model》以後再來認定自己是不是已經學

會了C++;

31.學習編程的秘訣是:編程,編程,再編程;

32.請留意下列書籍:《C++面向對象高效編程(C++ Effective Object-

Oriented Sofare Construction)》《面向對象軟體構造(Object-Oriented

Sofare Construction)》《設計模式(Design Patterns)》《The Art of

Computer Programming》;

33.記住:面向對象技術不只是C++專有的;

34.請把書上的程序例子親手輸入到電腦上實踐,即使配套光碟中有源代碼;

35.把在書中看到的有意義的例子擴充;

36.請重視C++中的異常處理技術,並將其切實的運用到自己的程序中;

37.經常回顧自己以前寫過的程序,並嘗試重寫,把自己學到的新知識運用進去



38.不要漏掉書中任何一個練習題——請全部做完並記錄下解題思路;

39.C++語言和C++的集成開發環境要同時學習和掌握;

40.既然決定了學C++,就請堅持學下去,因為學習程序設計語言的目的是掌握程

序設計技術,而程序設計技術是跨語言的;

41.就讓C++語言的各種平台和開發環境去激烈的競爭吧,我們要以學習C++語言

本身為主;

42.當你寫C++程序寫到一半卻發現自己用的方法很拙劣時,請不要馬上停手;

請盡快將餘下的部分粗略的完成以保證這個設計的完整性,然後分析自己的錯

誤並重新設計和編寫(參見43);

43.別心急,設計C++的class確實不容易;自己程序中的class和自己的class設

計水平是在不斷的編程實踐中完善和發展的;

44.決不要因為程序「很小」就不遵循某些你不熟練的規則——好習慣是培養出

來的,而不是一次記住的;

45.每學到一個C++難點的時候,嘗試著對別人講解這個知識點並讓他理解——

你能講清楚才說明你真的理解了;

46.記錄下在和別人交流時發現的自己忽視或不理解的知識點;

47.請不斷的對自己寫的程序提出更高的要求,哪怕你的程序版本號會變成

Version 100.XX;

48.保存好你寫過的所有的程序——那是你最好的積累之一;

49.請不要做浮躁的人;

50.請熱愛C++!

4. 如何學習好c語言

好好讀書好好寫代碼

5. 新手如何學好c語言

1、學好c語言,你可以很好地應付任何一種編程工具。
2、一定要多上機練習,通過程式了解相關知識。幾經反復方得正果。
3、不要把學習c語言當成一種任務,更不要把它看成很難完成的任務。要充滿自信,只要是一個智力正常的人都能學好c語言。始終保持游戲的心態,多發現其中的樂趣。當感到編程趣味無窮,那你在電腦方面將前程無量。
4、如果一個程式一時無法弄清楚最後暫時放在一邊,過一段時間你可能會從其他的程式中悟出道理。
5、c語言是一個整體,各個方面是有機聯系的,要從總體上把握它,不要把它割裂成互不關聯的部件。
6、不要完全相信教材(包括本講義),所有結論最好都上機驗證。
怎樣學好c語言
1.
工欲善其事,必先利其器
准備工作:一個開發環境,如turbo
c
2.0、visual
c++等開發工具;一本好教材,如譚浩強主編的《c語言程序設計》(第二版)。我當時看的是他的第一版,就為它的簡潔、完美所吸引,簡直愛不釋手,用了兩個星期一口氣看完。

6. 如何才能很好的學習C語言

答: 那麼既然說到這個問題,那麼你也肯定是計算機或者電子相關的專業在相關的大綱裡面也會開設這個課程,那我們如何利用這些已有的東西去更好的學習呢,我們一起來分析看看。

  1. 首先跟著老師一起好好學習。雖然說在大學課堂裡面,老師講課或許並不是我們想像當中的這么好,也可能有不足的地方,但畢竟跟著老師上課,我們也開了這門課程也要拿到這個學分,所以我認為跟著老師學習還是可以打基礎的,不管自己學的怎麼樣,畢竟80%的基礎都是可以打好的,除此之外,好好做好每堂課的相關實驗,學會總結,好好的寫實驗報告;
  2. 找到一些經典的題目練手。就比如說非常流行的C語言,典型100例或者200例等等,在你有了一定基礎之後可以通過解題來鞏固,也可以鍛煉自己的邏輯思維,畢竟計算機本身就是實踐性的課程,只有多練才能發現不足,才能更好的學習C語言;
  3. 找一些大型的工程,多看代碼多練習。如果說在第2點裡面只是做一些題目獵手的話,那麼第3點多做一些項目,比如說完成一個具有增三改查具有資料庫的相關項目,那這樣的話我們的編程的內會有進一步的提升,除此之外也可以進一步的去往圖形界面發展,也可以看看人家的大型項目裡面的代碼在實現工程的時候是怎麼弄的呀,多看源碼,把一些比較好的代碼,庫也可以保存下來,稍作修改就可以變成自己的了,這個時候就沒有必要說一定要所有的代碼都自己寫,而是可以借鑒,以完成功能為主呀。

總結來說以上三點希望可以幫助到你呀~

7. 如何學好C語言

在初學C語言時,可能會遇到有些問題理解不透,或者表達方式與以往數學學習中不同(如運算符等),這就要求不氣餒,不明白的地方多問多想,鼓足勇氣進行學習,待學完後面的章節知識,前面的問題也就迎刃而解了,這一方面我感覺是我們同學最欠缺,大多學不好的就是因為一開始遇到困難就放棄,曾經和好多同學談他的問題,回答是聽不懂、不想聽、放棄這樣三個過程,我反問,這節課你聽過課嗎?回答又是沒有,根本就沒聽過課,怎麼說自己聽不懂呢?相應的根本就沒學習,又談何學的好?
學習C語言始終要記住「曙光在前頭」和「千金難買回頭看」,「千金難買回頭看」是學習知識的重要方法,就是說,學習後面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是我們學生最不易做到的,然而卻又是最重要的。學習C語言就是要經過幾個反復,才能前後貫穿,積累應該掌握的C知識。
那麼,我們如何學好《C程序設計》呢?
一.學好C語言的運算符和運算順序
這是學好《C程序設計》的基礎,C語言的運算非常靈活,功能十分豐富,運算種類遠多於其它程序設計語言。在表達式方面較其它程序語言更為簡潔,如自加、自減、逗號運算和三目運算使表達式更為簡單,但初學者往往會覺的這種表達式難讀,關鍵原因就是對運算符和運算順序理解不透不全。當多種不同運算組成一個運算表達式,即一個運算式中出現多種運算符時,運算的優先順序和結合規則顯得十分重要。在學習中,只要我們對此合理進行分類,找出它們與我們在數學中所學到運算之間的不同點之後,記住這些運算也就不困難了,有些運算符在理解後更會牢記心中,將來用起來得心應手,而有些可暫時放棄不記,等用到時再記不遲。
先要明確運算符按優先順序不同分類,《C程序設計》運算符可分為15種優先順序,從高到低,優先順序為1 ~ 15,除第2、3級和第14級為從右至左結合外,其它都是從左至右結合,它決定同級運算符的運算順序.
二.學好C語言的四種程序結構
(1)順序結構
順序結構的程序設計是最簡單的,只要按照解決問題的順序寫出相應的語句就行,它的執行順序是自上而下,依次執行。
例如;a = 3,b = 5,現交換a,b的值,這個問題就好像交換兩個杯子水,這當然要用到第三個杯子,假如第三個杯子是c,那麼正確的程序為: c = a; a = b; b = c; 執行結果是a = 5,b = c = 3如果改變其順序,寫成:a = b; c = a; b = c; 則執行結果就變成a = b = c = 5,不能達到預期的目的,初學者最容易犯這種錯誤。 順序結構可以獨立使用構成一個簡單的完整程序,常見的輸入、計算,輸出三步曲的程序就是順序結構,例如計算圓的面積,其程序的語句順序就是輸入圓的半徑r,計算s = 3.14159*r*r,輸出圓的面積s。不過大多數情況下順序結構都是作為程序的一部分,與其它結構一起構成一個復雜的程序,例如分支結構中的復合語句、循環結構中的循環體等。
(2) 分支結構
順序結構的程序雖然能解決計算、輸出等問題,但不能做判斷再選擇。對於要先做判斷再選擇的問題就要使用分支結構。分支結構的執行是依據一定的條件選擇執行路徑,而不是嚴格按照語句出現的物理順序。分支結構的程序設計方法的關鍵在於構造合適的分支條件和分析程序流程,根據不同的程序流程選擇適當的分支語句。分支結構適合於帶有邏輯或關系比較等條件判斷的計算,設計這類程序時往往都要先繪制其程序流程圖,然後根據程序流程寫出源程序,這樣做把程序設計分析與語言分開,使得問題簡單化,易於理解。程序流程圖是根據解題分析所繪制的程序執行流程圖。
學習分支結構不要被分支嵌套所迷惑,只要正確繪制出流程圖,弄清各分支所要執行的功能,嵌套結構也就不難了。嵌套只不過是分支中又包括分支語句而已,不是新知識,只要對雙分支的理解清楚,分支嵌套是不難的。下面我介紹幾種基本的分支結構。
①if(條件)
{
分支體
}
這種分支結構中的分支體可以是一條語句,此時「{ }」可以省略,也可以是多條語句即復合語句。它有兩條分支路徑可選,一是當條件為真,執行分支體,否則跳過分支體,這時分支體就不會執行。如:要計算x的絕對值,根據絕對值定義,我們知道,當x>=0時,其絕對值不變,而x<0時其絕對值是為x的反號,因此程序段為:if(x<0) x=-x;
②if(條件)
{分支1}
else
{分支2}
這是典型的分支結構,如果條件成立,執行分支1,否則執行分支2,分支1和分支2都可以是1條或若干條語句構成。如:求ax^2+bx+c=0的根
分析:因為當b^2-4ac>=0時,方程有兩個實根,否則(b^2-4ac<0)有兩個共軛復根。其程序段如下:

d=b*b-4*a*c;
if(d>=0)
{x1=(-b+sqrt(d))/2a; x1=(-b-sqrt(d))/2a; printf(「x1=%8.4f,x2=%8.4f\n」,x1,x2); }
else
{r=-b/(2*a); i =sqrt(-d)/(2*a); printf(「x1=%8.4f+%8.4fi\n」r, i); printf(「x2=%8.4f-%8.4fi\n」r,i) }
③嵌套分支語句:其語句格式為:
if(條件1) {分支1};
else if(條件2) {分支2}
else if(條件3) {分支3}
……
else if(條件n) {分支n}
else {分支n+1}
嵌套分支語句雖可解決多個入口和出口的問題,但超過3重嵌套後,語句結構變得非常復雜,對於程序的閱讀和理解都極為不便,建議嵌套在3重以內,超過3重可以用下面的語句。
④switch開關語句:該語句也是多分支選擇語句,到底執行哪一塊,取決於開關設置,也就是表達式的值與常量表達式相匹配的那一路,它不同if…else 語句,它的所有分支都是並列的,程序執行時,由第一分支開始查找,如果相匹配,執行其後的塊,接著執行第2分支,第3分支……的塊,直到遇到break語句;如果不匹配,查找下一個分支是否匹配。這個語句在應用時要特別注意開關條件的合理設置以及break語句的合理應用。
(3)循環結構:
循環結構可以減少源程序重復書寫的工作量,用來描述重復執行某段演算法的問題,這是程序設計中最能發揮計算機特長的程序結構,C語言中提供四種循環,即goto循環、while循環、do –while循環和for循環。四種循環可以用來處理同一問題,一般情況下它們可以互相代替換,但一般不提倡用goto循環,因為強制改變程序的順序經常會給程序的運行帶來不可預料的錯誤,在學習中我們主要學習while、do…while、for三種循環。常用的三種循環結構學習的重點在於弄清它們相同與不同之處,以便在不同場合下使用,這就要清楚三種循環的格式和執行順序,將每種循環的流程圖理解透徹後就會明白如何替換使用,如把while循環的例題,用for語句重新編寫一個程序,這樣能更好地理解它們的作用。特別要注意在循環體內應包含趨於結束的語句(即循環變數值的改變),否則就可能成了一個死循環,這是初學者的一個常見錯誤。
在學完這三個循環後,應明確它們的異同點:用while和do…while循環時,循環變數的初始化的操作應在循環體之前,而for循環一般在語句1中進行的;while 循環和for循環都是先判斷表達式,後執行循環體,而do…while循環是先執行循環體後判斷表達式,也就是說do…while的循環體最少被執行一次,而while 循環和for就可能一次都不執行。另外還要注意的是這三種循環都可以用break語句跳出循環,用continue語句結束本次循環,而goto語句與if構成的循環,是不能用break和 continue語句進行控制的。
順序結構、分支結構和循環結構並不彼此孤立的,在循環中可以有分支、順序結構,分支中也可以有循環、順序結構,其實不管哪種結構,我們均可廣義的把它們看成一個語句。在實際編程過程中常將這三種結構相互結合以實現各種演算法,設計出相應程序,但是要編程的問題較大,編寫出的程序就往往很長、結構重復多,造成可讀性差,難以理解,解決這個問題的方法是將C程序設計成模塊化結構。
(4)模塊化程序結構
C語言的模塊化程序結構用函數來實現,即將復雜的C程序分為若干模塊,每個模塊都編寫成一個C函數,然後通過主函數調用函數及函數調用函數來實現一大型問題的C程序編寫,因此常說:C程序=主函數+子函數。 因此,對函數的定義、調用、值的返回等中要尤其注重理解和應用,並通過上機調試加以鞏固。
三.掌握一些簡單的演算法
編程其實一大部分工作就是分析問題,找到解決問題的方法,再以相應的編程語言寫出代碼。這就要求掌握演算法,根據我們的《C程序設計》教學大綱中,只要求我們掌握一些簡單的演算法,在掌握這些基本演算法後,要完成對問題的分析就容易了。如兩個數的交換、三個數的比較、選擇法排序和冒泡法排序,這就要求我們要清楚這些演算法的內在含義
結語:當我們把握好上述幾方面後,只要同學們能克服畏難、厭學、上課能專心聽講,做好練習與上機調試,其實C語言並不難學

8. 如何學好C語言

所有初學者面臨的第一個問題便是:如何選擇教材。好的開始是成功的一半,選擇一本優秀的教材是事半功倍的關鍵因素。不幸的是,學校通常會幫你指定一本很差勁的C語言課本;而幸運的是,你還可以再次選擇。沒有學習交流地方可以來


所以我建議初學者應該以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語言,其實我主要想說說程序該怎麼學,或者一點感悟罷了,在這里,我只想引用身邊的幾個人的例子,來談一下對程序學習的理解


第一個人要說到我了,我對程序產生興趣,是聽說程序可以作游戲,那時候是在初一,然而借來一本G-BASIC簡明教材後,我便傻了眼。


陌生的詞彙,古怪的邏輯,都是些天文的中文譯本,頭疼了好一陣子。


然而當時又沒有別的閑書可看,我就整天捧著那一本書,什麼方法都試過了,甚至倒著看過了,都沒看出什麼眉目,自己又沒有電腦,只能不停地大膽地想像,然後滿腦子的疑惑……


在這里停一下,上面說的便是我學習的風格:總要經歷一番波折,瞎折騰幾下,然後才會有偶然間的明悟-開竅了!我甚至沒見過幾個人有我這么笨,現在明白過來了,我總是一開始把事情想得過於復雜,造成狗咬刺蝟的難堪的局面,然而竟然有意想不到的收獲!但是不建議大家模仿這種風格,起碼追女朋友的時候不能這樣,生活中很多機會在於接手的那一瞬間,失去就永遠找不回來了。


現在回來,後來偶然間,我看懂了一行代碼,是print 語句,當時興奮得要命,又仔細看了這個看了那個,一下子看懂了很多東西,像是在霎那間被什麼給擊中似的,立刻間醍醐灌頂。。。。


初三在學校學了FOXBASE,基本上自學的,我發現了一件奇怪的事,我這人是出了名的記性不好,然而當時背程序中的命令卻是過目不忘,到現在還記得很多,也許是感興趣吧,也感謝我的微機老師給我提供自由上機的機會!後來我又自學了QBASIC,初四暑假又學了一點C,那時學C遇到不少困難,當時我們學校機房連C語言都沒有,我只好悶在家裡,一本二級C教材,一本配套習題,整天發呆地想,把自己的腦袋當電腦cpu使,有時進入死循環,有時又徹底崩潰。我花十幾天看完了一本書,做完了一本題,然而腦袋裡充滿了疑惑,由於沒有上機實踐的機會,我就憑自己的猜測與推理己慢慢建立了一大堆理論,十分得意與自信,但後來證明大部分是錯的,害我花了很長時間去糾正,這是後話。可是,還是那句話不破不立,不阻不行。就像我現在有了電腦,整天泡在互聯網的海洋里,感受著快餐文化,好久都沒靜下心來好好想點東西了.


高中還上過幾節電腦課,只不過忙於應付高考,我將學程序的打算放棄了,到這里我該說下一個人了。


高中時坐我旁邊一女生,她的文曲星里有BASIC,我偶爾拿過來編了幾個小程序玩,她看到後很感興趣,令人驚訝的是,她只看了三五個程序,聽我講了幾個命令的功能,就能根據自己的想像編出小動畫來,她此前是絕沒有學過程序的!我曾一度懷疑過她的智商,然而她程序是如此之快,卻讓我的眼都瞪大了好幾圈,比我當年高了好幾個境界!我後來經常在想,是不是我當時的方法不對,程序到底應該怎樣學。。。


一晃就到了大學,我碰到另一個讓我佩服的人,跟我一樣是學計算機的,他是偶爾看到我在編動畫,然後十分感興趣,便開始自學。他令人吃驚的是,指針,結構體,位運算等等,都沒搞懂(更不用說演算法和數據結構),只學了三種程序結構,現在只學了C半年,便自己能編出貪吃蛇,俄羅斯方塊,掃雷,還有很多叫不出名字的小游戲來,現在又在寫黑白棋,我知道我確實是走了不少彎路。


程序應該怎樣學,對C來講,我覺得應該從畫圖學起。


原因有二。


一,畫圖程序很能振奮人心的,它能帶給你濃厚的興趣,這是學程序的關鍵。


二,畫圖程序容易上手,很簡單的道理,就能做出很漂亮的東西來。有很多東西甚至不用看課本,就能自己推出來(我認為推理的方法很重要,它是你自學的必要條件)。


比如畫一個圓,從數學角度來分析,要確定一個圓,只需知道它的圓心(x,y)與半徑r,那好一個圓就畫出來了,circle(x,y,r);


其它的類推,再畫一個立體的,選擇立方體,再分析,只要知道兩個對角的坐標就行了吧,翻一下課本,不是這樣,為什麼?你或許會想到,電腦屏幕本來就是平面的,用立體坐標的理論在這里,恐怕就不是最簡單的方法。所以它採用的應該是兩個平面圖形平移。此處留下疑問,立體圖形在平面坐標中怎麼表示?自己慢慢研究,很淺的東西。


想作動畫吧,想像一下動畫的原理只是從一個圖形變幻到另一個圖形,不同地變幻就出現動畫效果,那就可以畫一個,擦了,再畫一個新的,再變化。。。


數學功底好的話,從二維到三維,從靜態到動態我認為是很快的過渡。


具體該怎麼學呢,你可以多找幾個畫圖的例子,敲到電腦里,多敲幾個,慢慢地你就會知道哪些東西是干什麼的,慢慢地就會自己做出東西來。


但這里不要沉溺太久了,先學畫圖只是幫助你輕松地入門(很多人C學完了還沒有入門)。


從畫圖里暫時走出來,你應該打打基礎了,這里不再贅述。可以邊學邊實踐,物理,數學課本中很多問題都可以用程序來演示,來解決,嘗試著多做些東西,這比你老學課本中的模型強多了,只有你自己去體會才能知道。


談及C語言,我想凡是學過它的朋友都有這樣一種感覺,那就是「讓我歡喜讓我憂。」歡喜的是,C語言功能非常強大、應用廣泛,一旦掌握了後,你就可以理直氣壯地對他人說「我是電腦高手!」,而且以後若是再自學其他語言就顯得輕而易舉了。憂慮的是,C語言猶如「少林武功」一般博大精深,太難學了。其實就筆者認為C語言並非是「difficult(困難)」的,只要你能理清思路,掌握它的精髓,那麼自學C語言是一件非常容易且又其樂無窮的事。今天本人就與大家一起談談如何學習C語言或者說學習C語言應從哪幾方面著手。


了解一些基本知識


一.C語言的背景


就個人感觸,無論學習哪門語言首先應該了解一下自己所學語言的背景,也可以說它的發展史。


C語言屬於高級程序語言的一種,它的前身是「ALGOL」。其創始人是布朗·W·卡尼漢和丹尼斯·M·利奇。C語言問世時是帶有很大的局限性,因為它只能用於UNIX系統上。然而隨著科學技術的進步,計算機工業的發展,C語言逐漸脫離UNIX。1987年美國標准化協會制定了C語言的國際標准,簡稱「ANSI C」,從此以後它便成為一種廣泛使用的程序語言。C語言的優點很多,主要的有如下四點:


1.兼備高級語言與低級語言的優點,屬於一種中間語言。


2.它是一種結構化程序設計語言,非常適合結構化程序設計。


3.有較豐富的數據類型、運算符以及函數供以選用。


4.直接與內存打交道,使修改、編輯其他程序與文檔變得輕松,簡單。


二.二大語系二種不同的學習方法


筆者學習過很多程序語言,例如:C,C++(C語言的擴展),QBASIC,VB(BASIC的可視化),JAVA,J ,VB,JAVA,ASP,FOXPRO,PERL等等,就本人實踐所得,其實高級程序語言分為兩大語系。一路是以C為主的程序語言,例如:JAVA,JAVA等,這類語言在函數的調用,程序語句的書寫,循環的控制都極為相似。另一路是以BASIC為首的程序語言,例如:FOXPRO,VB等,此類語言同樣具有相似的函數調用,程序語句書寫以及循環控制,但與C語系是不同的。因此若是您以前是從QBASIC起家的,那麼在學習C語言前最好是先洗洗腦,千萬不要把學習BASIC的方法以及思路用在C身上。


講到這里,我想大家對C語言一定有了感性認識吧!下面讓我們再升華一下,全方位親密接觸它。學習C語言必須從以下四點入手,也就是說,只要你能掌握這四點的內容,那麼基本上就大功告成了。


怎樣才能學好c語言


有人問我c語言是不是很難學,我說不是,後來問的人多了,我就萌生了寫一篇關於c語言如何入門的文章的念頭來。


其實c語言很簡單,它只是一種交流的規則,一種表達的工具,一種承載思想的容器而已,之所以感覺難,我覺得是還不習慣使用計算機特點來考慮問題。這就好比中國人從到英國定居一樣,雖然你學過英語,但是那隻是想像中的英國,和現實的英國的情況還相差很遠,所以要有一個適應的過程,也就是常說的過渡期或磨合期。


想盡快上手就得掌握計算機的特點,計算機的特點包括:


1、 計算機在問題的處理方式上要求全,將所有的可能都要告訴它。人可以根據習慣忽略一些東西,但計算機不行。比如說求解一元二次方程,我們考慮問題就已經默認了a不等於0,更有甚者把b方減4ac也默認大於等於零了。這是我們的習慣,既然有解,我們一般習慣上就把它定為實數解,所以你做出來的程序一般是不考慮這兩個條件的,但是計算機不行,計算機是有名的弱智。計算機沒有象人一樣的智能處理能力,它是人忠實的信徒,不管你怎麼想,它都會執行你的命令。由於你的習慣,導致一些別有用心的人或者無意犯錯的人來犯錯誤,致使計算機有時無所適從。很疲憊,甚至崩潰,報錯,造成你的程序是不成功的,所以你感覺很難。


2、 計算機要求程序的描述精確,無二義性。人的語言有很強的隨機性和二義性。我們平時說話時,有時是一些招呼,有時說話的邏輯性可以不太清楚,話既可以表達這樣的意思,也可以表達那樣的意思,人可以根據環境和對方想表達的含義進行分析,最終得到正確的結果,但是計算機很弱智,雖然它很聽話,但是他不能理解你表達的思想,只會按你交給的指令執行,這樣導致執行時報警和出錯。


3、 計算機編程是要求有很強的全局性和邏輯性,不存在起伏的問題。人的思維有很強的活躍期和蟄伏期,計算機不會,它隨時待命。人在考慮問題時,有很多盡興的東西,但這不是處理問題的整體,而是一部分,所以就出現做完一段代碼後,就不願意再寫,或感覺很吃力,所以感覺很難。


計算機要求它的主人,考慮問題要全面,所有可能的情況及處理都要告訴它,要求學會沉穩,心態要穩定,要求交流的語句一定要明了含義單一。


怎樣才能很快的學會c語言,更快的度過磨合期呢?C語言的語法規則記憶理解當然是不可少的,除此之外還應注意以下幾個方面:


1、 好好理解一下變數和函數的概念,至少要重新回頭看看初等數學。這是基礎,否則就會先天不足,你學的再好,也成不了大氣候。


2、 平衡心態,雖然不能做到「不以物喜,不以己悲」的水平,但至少不要浮躁,不要急於求成,欲速則不達。


3、 培養自身的全局意識,既能小無內,也能大無外,才行。


4、 嚴格按照程序設計過程設計程序,不要跳脫,天馬行空,沒有規矩是不成方圓的。


5、 努力提高自身的綜合素質。程序是人思維的表達形式,是人處理問題思路和語言的結合體。你對客觀看成到什麼程度和你掌握的知識成正比。如果你對處理的問題不理解,不會處理,你怎麼也寫不出程序。


6、 學會交流,多交流,相互補益,同時團隊合作也是很重要的。



總之,實踐出真知,多學、多練、多思、多交流,勤奮好學才能學成。

熱點內容
java返回this 發布:2025-10-20 08:28:16 瀏覽:581
製作腳本網站 發布:2025-10-20 08:17:34 瀏覽:875
python中的init方法 發布:2025-10-20 08:17:33 瀏覽:570
圖案密碼什麼意思 發布:2025-10-20 08:16:56 瀏覽:755
怎麼清理微信視頻緩存 發布:2025-10-20 08:12:37 瀏覽:672
c語言編譯器怎麼看執行過程 發布:2025-10-20 08:00:32 瀏覽:999
郵箱如何填寫發信伺服器 發布:2025-10-20 07:45:27 瀏覽:242
shell腳本入門案例 發布:2025-10-20 07:44:45 瀏覽:102
怎麼上傳照片瀏覽上傳 發布:2025-10-20 07:44:03 瀏覽:794
python股票數據獲取 發布:2025-10-20 07:39:44 瀏覽:700