国产超薄丝袜足底脚交国产_少妇愉情理伦片丰满丰满_一区二区三区中文人妻制服_久久久久88色偷偷免费_色婷婷久久久swag精品

首頁 > 職業(yè)資格  > 

C語言入門的基本學(xué)習(xí)方法

2023-04-08   來源:萬能知識網(wǎng)

C語言入門的基本學(xué)習(xí)方法


(資料圖片僅供參考)

篇一:C語言入門的基本學(xué)習(xí)方法

一、C語言入門的基本學(xué)習(xí)方法

《C語言》的內(nèi)容很豐富,有的部分涉及到的細(xì)節(jié)很多,如硬件知識和數(shù)據(jù)結(jié)構(gòu)知識等,自學(xué)時不可能面面俱到,否則必然會顧此失彼,反而抓不住主要矛盾。筆者認(rèn)為對初學(xué)C語言的考生,開始不必在每一個細(xì)節(jié)上過于死摳,而應(yīng)當(dāng)把主要精力放在最基本、最常用的那些部份,待有一定的基礎(chǔ)后再深入到一些非主要的細(xì)節(jié),有一些細(xì)節(jié)需要通過較長期的實踐才能熟練掌握。初學(xué)C語言時,可能會遇到有些問題理解不透,請不要氣餒,鼓足勇氣向后面的內(nèi)容學(xué)習(xí),待學(xué)完后面的章節(jié)知識,前面的問題也就迎刃而解了。學(xué)習(xí)C語言始終要記住―曙光在前頭‖和―千金難買回頭看‖,―千金難買回頭看‖是學(xué)習(xí)知識的重要方法,就是說,學(xué)習(xí)后面的知識,不要忘了回頭弄清遺留下的問題和加深理解前面的知識,這是學(xué)習(xí)的人最不易做到的,然而卻又是最重要的。比如:在C語言中最典型的是關(guān)于結(jié)構(gòu)化程序設(shè)計構(gòu)思,不管是那種教材,一開始就強(qiáng)調(diào)這種方法,這時也許你不能充分體會,但是學(xué)到函數(shù)時,再回頭來仔細(xì)體會,溫故知新,理解它就沒有那么難了。學(xué)習(xí)C語言就是要經(jīng)過幾個反復(fù),才能前后貫穿,積累應(yīng)該掌握的C知識。

下面我們就圍繞《C語言》的特點、以98年全國等級考試

大綱為基礎(chǔ),把里面的重點和難點,從宏觀和微觀兩個角度,就如何學(xué)好這門課程提供一些建議和方法,供大家學(xué)習(xí)時參考。

首先從宏觀上談一談自學(xué)C語言的方法。

我認(rèn)為要學(xué)好C語言首先必須了解等級考試C語言的大綱和內(nèi)容,以及各種輔助材料的用途,這是學(xué)好C的基礎(chǔ)。從以前的經(jīng)驗以及考網(wǎng)上的一些信息可知,要自學(xué)C語言必須準(zhǔn)備以下資料:

1、 教材:大家現(xiàn)在都公認(rèn)是清華大學(xué)譚浩強(qiáng)主編的那本,當(dāng)然有其他的也可以,如高校出版社的。

2、 習(xí)題集:我認(rèn)為清華大學(xué)的《C語言樣題匯編》不錯。書后面附有答案。

3、 上機(jī)練習(xí):我認(rèn)為南開大學(xué)的那個可以,最好是在考前從頭到尾做一遍。答案可以去考網(wǎng)下載區(qū)下載。

4、 大綱:這個肯定要的,可以在考網(wǎng)二級版那里去下,然后打印出來。

5、 自學(xué)計劃:為了做到有計劃有目的地學(xué)習(xí)C語言,大家可以根據(jù)自己的學(xué)習(xí)(或工作)情況,制定一個自學(xué)計劃,循序漸進(jìn)地學(xué)習(xí)。

6、 模擬盤:為了更好地熟悉考場環(huán)境,下一個模擬盤是必不可少的,可以在。下載,注意,在下載時要把鎖匙盤一起下回來,否則不能進(jìn)入考試環(huán)境。

7、 教學(xué)光盤:如果能買到C語言的教學(xué)光盤,那當(dāng)然更好,這樣可以更直觀地學(xué)習(xí)C語言了。

下面從微觀上針對C語言的幾個重點和難點,逐個談?wù)劸唧w的自學(xué)方法。

二 如何學(xué)習(xí)C語言的運算符和運算順序

C語言的運算功能十分豐富,運算種類遠(yuǎn)多于其它程序設(shè)計語言。因此,當(dāng)多種不同運算組成一個運算表達(dá)式,即一個運算式中出現(xiàn)多種運算符時,運算的優(yōu)先順序和結(jié)合規(guī)則顯得十分重要。

初學(xué)者往往對此感到非常困難,覺得C語言學(xué)習(xí)太繁雜,其實只要我們對此合理進(jìn)行分類,找出它們與我們在數(shù)學(xué)中所學(xué)到運算之間的不同點之后,記住這些運算也就不困難了,有些運算符在理解后更會牢記心中,將來用起來得心應(yīng)手,而有些可暫時放棄不記,等用到時再記不遲。

下面是所有的運算符按優(yōu)先級不同分類列表:(對不起,因為表格顯示不正常,已被我刪除大家可以看書上的)

表中列出15種優(yōu)先級的運算符,從高到低,優(yōu)先級為1 ~ 15,最后邊一欄是結(jié)合規(guī)則,除第2、3級和第14級為從右至左結(jié)合外,其它都是從左至右結(jié)合,它決定同級運算符的運算順序。

下面我們通過幾個例子來說明:

(1) 3*20/4%10 這個表達(dá)式中出現(xiàn)3種運算符,是同級運算符,運算順序按從左至右結(jié)合,因此先計算3 * 20=60,然后被4除,結(jié)果為15,最后是%(求余數(shù))運算,所以表達(dá)式的最終結(jié)果為15%10 = 5

(2)a = 3;b = 5;c =++ a* b ;d =a + +* b;

例子中的―;‖是C語言的語句分隔符,執(zhí)行順序為從左到右,

第1條語句執(zhí)行后a的值為3,第2條語句執(zhí)行后b的值為5,第3條語句中有兩個運算符前置+ +和*,按表中所列順序,+ +先執(zhí)行,*后執(zhí)行,所以+ + a執(zhí)行后,a的值為4,由于+ +為前置運算,所以a的值4參與運算,C的值為20,最后執(zhí)行第4條語句,由于a + +為后置運算,所以a值為4參與運算,使得d的值仍為20,而a參與運算后其值加1,值為5。

這個例子執(zhí)行后,a的值為5,b的值為5,c的值為20,d的值也是20。

(3)a = 3,b = 5,b+ = a,c = b* 5

例子中的―,‖是逗號結(jié)合運算,上式稱為逗號表達(dá)式,自左向右結(jié)合,最后一個表達(dá)式的結(jié)果值就是逗號表達(dá)式的結(jié)果,所以上面的逗號表達(dá)式結(jié)果為40,a的值為3,b的值為8,c的值為40。

三、如何學(xué)習(xí)C語言的四種程序結(jié)構(gòu)

篇二:淺談C語言學(xué)習(xí)方法

淺談C語言學(xué)習(xí)方法

本人是一名windows程序?qū)懽鲉T,使用的語言是C語言.其他語言了解一點點,但并不擅長.可能對于初學(xué)者來說,首先就是選擇一門程序設(shè)計語言.當(dāng)然,今天我將要說的不是這方面.每種語言都有它所擅長的領(lǐng)域與層面.當(dāng)然對于其他非C語言我是一名門外汗,我也不會站在C語言的立場去談?wù)撈渌魏我婚T語言.好了,在開始進(jìn)入正題之前,我想談?wù)剛€人對C的一些看法:

C語言是一種早期的計算機(jī)語言,最初誕生目的是為了提供一種基于UNIX系統(tǒng)的工作語言.但是,后來卻被越來越多的人發(fā)現(xiàn)它的優(yōu)點與潛力.C本身比較接近底層,適合開發(fā)系統(tǒng)軟件甚至是操作系統(tǒng).我個人也認(rèn)為它是界于高級語言與匯編語言之間的中級語言.C語言是一門結(jié)構(gòu)化語言(我認(rèn)為主要是指它的控制結(jié)構(gòu)如:if if-else while for等等).C程序設(shè)計上有提到"自頂向下,逐步深入".以函數(shù)為原子功能模塊.對于大型的程序來說模塊化是很重要的,有一句話說的很好"優(yōu)質(zhì)的程序首先就是便與人們之間的相互討論與交流,其次才是執(zhí)行效率".當(dāng)然我個人認(rèn)為任何一名程序?qū)懽髡?都應(yīng)該養(yǎng)成一種特定的思維方式,以程序的思維方式來思考程序的實現(xiàn).前提就是要足夠的來了解計算機(jī)底層技術(shù).要不我想就連學(xué)習(xí)都是很困難的,凡事都是一個思路的問題嘛.標(biāo)準(zhǔn)的來衡量,C應(yīng)該算是高級語言陣營的一份子.可很多有C語言開發(fā)經(jīng)驗的程序?qū)懽髡?通常親切的稱C為界于底級語言與高級語言之間的中級計算機(jī)語言.當(dāng)然不是因為C比高級語言要差,之所以這么認(rèn)為是因為C既具有高級語言的結(jié)構(gòu)化與可理解性又具有低級語言的高效率.同時C的移植性也是非常不錯的,大家應(yīng)該知道,越是接近硬件,接近底層的語言就越加的依賴硬件環(huán)境,也就是我們所說的設(shè)備相關(guān)性.C這一點做的是非常棒的.說了這些,在從另一個角度去分析C語言.當(dāng)然每種語言都有它自身的優(yōu)缺點,C也一樣.比如在現(xiàn)在高級語言與頂層技術(shù)的角度來看的話,C最大的缺陷就是Data與算法的分離.舉一個例子: 對于一個擁有幾千行甚至上萬行Code的程序來說,如果修改Data,比如我在Structure中增加一個字段,可能為此我的整個程序都要改動,這使得程序的可重用性大大降低.開發(fā)周期也大大的延長.但是在底層的角度來看這也正是C的優(yōu)點.我為什么要這么說呢?我個人認(rèn)為在求解與實現(xiàn)一個小問題的時候,我們可以寫出一個通用的模塊處理不同的Data.當(dāng)然比如某些經(jīng)常用到的,基于數(shù)據(jù)結(jié)構(gòu)的一些常用算法我們可以寫出來在開發(fā)的時候我們可以直接把預(yù)先編寫的模塊插入到我們的程序中去,這不也是大大低了開發(fā)周期嗎?初學(xué)者完全可以根據(jù)自己的需求來編寫一個自定義庫.好了,說了這些,有些地方我理解錯了,還請各位指出來,交流是很重要的,前提是要把自己的心態(tài)放平.下面我將談?wù)摫締柕闹攸c,也就是如何來學(xué)習(xí)C語言,是給那些初學(xué)者讀的.

正題部分:

有人可能會說:學(xué)習(xí)還用你教啊,誰沒上過學(xué)啊.其實我今天要說的只是,站在一個過來人的角度,來分析與解釋學(xué)習(xí)C語言的過程中比較困難的地方.當(dāng)然我個人也會對比較具體的問題進(jìn)行解釋(個人看法).我一直在強(qiáng)調(diào)個人看法,我是想讓大家明白,對于同一個問題大家可能都很難達(dá)成統(tǒng)一的意見,希望批評的時候客氣點就好嘍!

初學(xué)者該看哪些書來入門:

在學(xué)習(xí)C語言之前,首先就要選擇一本教材,對于初學(xué)者,我個人并不建議去讀電子書籍,最好是買紙質(zhì)書來學(xué)習(xí).比如比較有名的"C程序設(shè)計"就很不錯,尤其是第二版.我也看過,比較適合中國人來初學(xué).整本書都在全面系統(tǒng)的講解C的語法結(jié)構(gòu),構(gòu)成C的語言元素包括:數(shù)據(jù)類型,支持的運算符,標(biāo)識符(是由程序員按照命名規(guī)則起的名字,用于變量名,函數(shù)名,宏名等等),關(guān)鍵字(編譯系統(tǒng)用于實現(xiàn)C內(nèi)部功能的詞,比如:轉(zhuǎn)向goto和中斷break等等)等.看完這本書你基本上可以寫一些簡單的小程序,當(dāng)然是DOS下的程序.如果你想在進(jìn)一步深入學(xué)習(xí)C的話,可以看"C陷阱與缺陷"這本書.寫這本書的作者是在Bell工作對C是非常精通的,應(yīng)該算是大師級的人物了.如果你暫時不想深入C的話,也沒問題,因為此時你完全可以把C當(dāng)作一種編程工具來使用,你要做的就是多寫Code來讓自己熟悉C語言.經(jīng)驗是非常重要的,"經(jīng)驗是檢驗真理的唯一方法".當(dāng)然你不會紙上談兵,如果你有過多

的開發(fā)經(jīng)驗的話,就知道在紙上或最初的設(shè)想的Code拿到計算機(jī)上來實現(xiàn),最終會發(fā)現(xiàn)有很多地方都是不合理的,之前是沒有辦法想象到的.在初學(xué)C的過程中,比如你會看"C程序設(shè)計"來初學(xué)C,當(dāng)你學(xué)完每一章的時候要把習(xí)題來完成,這里就是考驗?zāi)銓W(xué)到的知識了,看看你應(yīng)用能力怎么樣?尤其是程序設(shè)計題目,比較有意思.哪里不懂了.可以翻回去看書中的解釋.如果沒有解釋或你還是不明白,可以去問別人,與其他人交流. bbs,QQ或Google.直到你弄明白為止.當(dāng)你把問題最終解決的時候,我敢打賭,此時你一定很興奮,或者是比較興奮.這個時候知識已經(jīng)在你的大腦里了.

下面我為你推薦幾本不錯的關(guān)于C語言籍:

C編程規(guī)范

C語言大全第四版 (個人感覺不錯,里面有提及C標(biāo)準(zhǔn)方面的東西)

C和指針

The C programming Language (經(jīng)典著作)

如果你要看電子書的話,以上幾本書在Google上很容易就可以找到.

關(guān)于C語言的初步理解:

對于初學(xué)者,會有太多的疑問,原因是你的知識面太小.現(xiàn)在我為你解釋一些C相關(guān)的東西.目的是讓你能夠有一個大致清晰的方向,來給自己安排學(xué)習(xí)計劃.專業(yè)的來說,我們是或?qū)⑹且幻绦騿T,程序員當(dāng)然就是要開發(fā)程序了.對于軟件開發(fā)方面我來解釋下術(shù)語:

C,C++,ASM,Basic,Java 這些是計算機(jī)語言.計算機(jī)語言很多,我就不多說了.

Visual C++,Visual Basic, Microsoft研發(fā)的開發(fā)環(huán)境,開發(fā)環(huán)境包括:編譯器,庫函數(shù)(每種C語言編譯器都支持標(biāo)準(zhǔn)庫,同時它們也會擴(kuò)展自己的庫,所以很多比較以來庫函數(shù)實現(xiàn)的程序員,在轉(zhuǎn)向不同的開發(fā)環(huán)境的時候最初總是不使用的,會遇到很多問題),一些資源模板等等.Visual 就是可視的意思,后面的就是語言.Visual C++支持C與C++2種語言,是根據(jù)文件的擴(kuò)展名來判斷采用哪種編譯內(nèi)核.

什么是"面向?qū)ο?與"面向過程"? 其實是2種完全不同的程序設(shè)計思想,C語言是面向過程語言,而C++是面向?qū)ο笳Z言.在面向?qū)ο蟮恼Z言中有"類(Class)"這個東西.C中沒有.對象是由類來派生的一個實例,相反類就象是一個模板.

什么是SDK? SDK就是軟件開發(fā)工具包(Software Development Kit).指的范圍比較廣,通俗的說,凡是能夠與軟件開發(fā)過程占上邊的東西都屬于.比如:庫文件,參考資料,接口函數(shù),當(dāng)然語言也應(yīng)該屬于.

DDK就是設(shè)備驅(qū)動程序開發(fā)工具包.

Turbo C: 這是一個比較精致的C語言編譯器.

理論上來說任何一門語言都可以在任何一種操作系統(tǒng)上運行,前提是操作系統(tǒng)要支持.也就是我們所說的應(yīng)用程序接口,比如

Window API(Application Programming Interface),其實是Microsoft內(nèi)部定義的接口函數(shù)用于實現(xiàn)一些Windows內(nèi)部的功能.一些對象的描述術(shù)語,在不同平臺上是不同的,比如:Windows下的"調(diào)用",經(jīng)常被稱為"呼叫","返回"被稱為"傳回".

什么是"算法"? 你最初只需要知道算法實際上就是對特定的Data進(jìn)行運算的一段代碼而已.也可以認(rèn)為在求解一道題目的時候,采取的方法與步驟的總稱.對于基本的C程序來說,實際上就是由Data與算法來組成的.

什么是"數(shù)據(jù)結(jié)構(gòu)"? 如果要是系統(tǒng)的講解,還需要一本書"數(shù)據(jù)結(jié)構(gòu)",簡單的說:是程序要處理的數(shù)據(jù)在內(nèi)存中的存儲與組織的方式,分為:物理結(jié)構(gòu)與邏輯結(jié)構(gòu).邏輯結(jié)構(gòu)就是我們抽象化以后得到的大腦影象.

什么是"函數(shù)庫"? 它們以文件的形式存儲,是預(yù)先定義好的函數(shù)的集合,我們的程序可以直接調(diào)用.當(dāng)然前提是要包含它的頭文件(庫函數(shù)的原型聲明).這些函數(shù)是在靜態(tài)連接期間組成到.exe文件中去的.Windows又存在另一種庫,叫做動態(tài)連接庫(DLL).

GUI: 也就是"圖形用戶界面",就是我們在Windows上看到的,存在:菜單欄,滾動條與顯示區(qū)域的窗口.

GDI: 圖形設(shè)備接口,從程序?qū)懽髡叩慕嵌葋砜?其實GDI就是由上百個函數(shù)與數(shù)據(jù)形態(tài)和一些相關(guān)的數(shù)據(jù)結(jié)構(gòu)所組成的.

學(xué)習(xí)C語言的全過程:

仔細(xì)想想,實際上學(xué)習(xí)C語言,最初是應(yīng)該先學(xué)習(xí)C語言的基礎(chǔ)語法.也就是學(xué)習(xí)C語言的組成部分.一部分一部分的向下學(xué).知識要一點一點的鞏固的.本人假設(shè)你學(xué)習(xí)C語言是看"C程序設(shè)計".我認(rèn)為你應(yīng)該先把C程序設(shè)計仔細(xì)的看一便,這樣你應(yīng)該可以對整本書和C語言的整體組成結(jié)構(gòu)有個大致的清晰了解.不要認(rèn)為學(xué)習(xí)只是在看書,看一便就可以了.你應(yīng)該學(xué)會記筆記,在記筆記的過程中,其實你就是在學(xué)習(xí),從知識的分析,理解,歸納,到最后以自己的思維方式記下來,這整個過程就是把書中的知識抽象到你自己的腦袋里.個人感覺學(xué)習(xí)效果非常好,不懂就問,要多多與人交流,要多思考,遇到問題自己先多想想,實在找不到問題出在哪,在去請教別人,不要有不懂的地方就直接去問別人,那樣對你沒太大的好處.其實要學(xué)會給自己安排適合自己的學(xué)習(xí)計劃,我大致來估計了一下,如果你每天能花4個小時安靜的,用心去學(xué)習(xí)的話,30天之內(nèi)你應(yīng)該可以掌握C語言了.其實在整個學(xué)習(xí)過程中你大多數(shù)時間都在看書,而不是面對電腦.在調(diào)試你的代碼之前,先在紙上把核心代碼大致寫出來,分析一下:程序的組成模塊(可以是一個函數(shù)或多個),由幾個函數(shù)來實現(xiàn),接口的封裝.采用哪種數(shù)據(jù)結(jié)構(gòu)更適合一些.關(guān)鍵在于算法.在你的最終程序發(fā)布之前,最好把你的代碼行數(shù)減到最少.不要只想著把代碼寫多.過多的代碼對程序來說是負(fù)擔(dān).你可以在Internet上下載一個文件(C語言經(jīng)典例題.chm),里面大致包含了上百個經(jīng)典的例題.每一個例題都是C語言某部分的典型應(yīng)用.花時間把這個文件中的所有例題代碼研究一下,最好能自己把代碼改善,以自己的方式來求解.以后你會發(fā)現(xiàn)你在寫一些應(yīng)用程序的時候經(jīng)常會有一些算法.會涉及到我之前提到的例題.最后我認(rèn)為你可以自己來寫C語言標(biāo)準(zhǔn)函數(shù),比如strcpy(); strlen();strcat();最好不要過分依賴庫函數(shù).

C語言學(xué)習(xí)的難點:

現(xiàn)在應(yīng)該是已經(jīng)講到一個重點的環(huán)節(jié).很多網(wǎng)友都說學(xué)習(xí)C語言很難,我認(rèn)為C中有些部分是比較復(fù)雜,難理解的.當(dāng)然在你具有了豐富的開發(fā)經(jīng)驗以后,這以不在是問題了.下面我個人會對我認(rèn)為學(xué)習(xí)C的時候比較難學(xué)的地方進(jìn)行我自己的闡述,如果哪里不正確,還請各位指出:

指針的出現(xiàn):

我想有很多初學(xué)者學(xué)習(xí)到指針那一章都感覺很難,下面我就以自己的想法來解釋下指針這個特殊的數(shù)據(jù)類型,

基本變量大家可能并不難理解,因為基本變量其內(nèi)部存儲了同類型的常量,事實上指針也是變量,不過呢,這個變量和基本變量有點不一樣,那你又問了:是哪里不一樣呢? 我告訴你,簡單的來理解其實普通的變量內(nèi)部存儲了同類型的常量,而指針變量內(nèi)部存儲的則是"同類型變量的首地址".這樣你能夠理解嗎,是很簡單的解釋,但不失本質(zhì).事實就是這樣的.如果你不理解"同類型變量的首地址"的話,我可以給你形象的來描述一下:

float Variable; //聲明一個單精度實型的變量

此時,編譯器已經(jīng)給Variable分配了內(nèi)存空間,結(jié)構(gòu)如下:

__________

| |1001

|---------

| |1002

|---------

| |1003

|---------

| |1004

|---------

以上便是Variable的內(nèi)存結(jié)構(gòu)了,16位下的float占用4個字節(jié),內(nèi)存地址是線性編碼的,我們可以很容易的看出Variable的首地址就是他第一個單元的地址1001,好的,繼續(xù)向下看:

float *Pointer=&Variable; //聲明一個指向Variable的指針Pointer

_________

|1001 | 這是Pointer的內(nèi)存結(jié)構(gòu)

|_______|

我們的程序可以這樣來執(zhí)行:

Variable=1.0;

直接給Variable賦值,我們稱為直接訪問.

也可以這樣執(zhí)行:

*Pointer=1.0;

也可以通過指針變量來賦值,前面的*是間接運算符號,意思是求Pointer內(nèi)部存儲地址所標(biāo)識的內(nèi)存單元.也就是Variable.此時,是賦值是通過間接訪問來實現(xiàn)的.可以這樣形象的描述:

________ (指向Variable) __________

|Pointer|------------------------------------>|Variable|

--------- ----------

以上應(yīng)該是指針實現(xiàn)的基本解釋,很多優(yōu)秀的程序?qū)懽髡叨颊f指針是C語言中的精華,的確如此,很多優(yōu)秀的程序?qū)懽髡邔懗绦蚨挤浅R蕾囍羔?因為它很方便,實際上指針?biāo)L問的對象是沒有限制的,他可以指向任何類型的變量,前提是只要我們知道內(nèi)存地址.因此指針也并不安全,在開發(fā)網(wǎng)絡(luò)程序的時候,盡量要少使用指針.下面我們在來看一下指針在數(shù)組中的使用.

數(shù)組中的指針:

簡單的來解釋下數(shù)組,數(shù)組結(jié)構(gòu)在C中使用比較普遍,其實最常用的就是char 類型的數(shù)組,主要是用于字符串操作.實際上數(shù)組是"同類型變量的有限集合".我想這應(yīng)該不難理解吧.數(shù)組在內(nèi)存中占用連續(xù)的內(nèi)存單元(地址連續(xù)),來存儲數(shù)組中的每一個元素.數(shù)組是預(yù)先分配好指定長度的內(nèi)存單元,供數(shù)組元素使用.它并不支持動態(tài)內(nèi)存分配.在內(nèi)存中想要唯一的確定數(shù)組,需要2個標(biāo)識:入口地址(函數(shù)名)和結(jié)束標(biāo)記("").有些語言并不向C語言這樣支持字符串結(jié)束標(biāo)記,它們必須要另外聲明一個變量來標(biāo)識尾元素的下標(biāo).那數(shù)組名其實就是這一組內(nèi)存單元的首單元,他的地址就是整個數(shù)組的入口地址.此時應(yīng)該明白了,數(shù)組名是一個指針,這樣理解沒有問題.不錯在具體操作的時候不允改變數(shù)組名的地址,也不符合實際要求.這樣就可以明白數(shù)組名是一個什么 const Pointer(指針常量).我們可以這樣做:

int Array[10];

int *Pointer;

Pointer=Array;

for(i=0;i<10;++i)

Pointer==i;

以上代碼應(yīng)該是沒問題吧,同類型的指針,完全可以勝任數(shù)組名的任務(wù).一點問題沒有而且可以運行的很好.當(dāng)然,我們可以進(jìn)一步把代碼這樣來寫:

for(i=0;i<10;++i)

Pointer=i;

改成

for(i=0;i<10;++i,Pointer++)

*Pointer=i;

不好意思,我記不清了,指針的++運算是地址+1還是向后移動一個元素的位置,如果是地址+1的話,以上代碼在改成這樣: for(i=0;i<10;++i,Pointer+sizeof(int))

*Pointer=i;

如果數(shù)組類型是char的話,那就更方便了,因為字符串存存在一個在尾元素之后的結(jié)束標(biāo)記(""),下面給出一個簡單的代碼,應(yīng)用char Pointer:

char * my_strcpy(char * dst, const char * src)

{

char * cp = dst;

while( *cp++ = *src++ ); // 注意運算符的優(yōu)先級與結(jié)合性

return( dst ); //返回新傳的指針

}

以上代碼實現(xiàn)字符傳Copy功能,代碼是不是很簡潔啊.如果不需要移動內(nèi)存塊的`話,我們完全可以通過交換指針(內(nèi)存地址)來實現(xiàn)排序操作,其效率應(yīng)該是很客觀的.補(bǔ)充一句:千萬要弄清楚,指針本身與指針?biāo)赶虻淖兞坎皇且粋€單元.

篇三:C語言學(xué)習(xí)方法

第一個要裝進(jìn)行囊和你一起前進(jìn)是“規(guī)范的格式”,有很多教科書,參考書,不太注重程序的格式的問題,寫出的程序就象一堆堆的垃圾一樣,這也導(dǎo)致了現(xiàn)在很多人寫的程序中有很多的廢碼,垃圾代碼,這和那些入門的書有非常大的關(guān)系,要把那些作者都拿來打打PP。真正的商業(yè)程序絕對是規(guī)范的,張三寫的程序和李四的程序格式大致相同,各種標(biāo)識符的命名規(guī)則一樣,否則誰也看不懂你寫的程序。如果寫出來的代碼誰也看不懂,那絕對是垃圾。如果要把那些垃圾翻半天,勉強(qiáng)才把金子找出來,那這樣的程序不如不要,還不如重新寫過,這樣,思路會更清楚一點。所以說,規(guī)范的格式是入門的基礎(chǔ)。那這個規(guī)范的格式包括什么呢?不少啊,要堅持才能做到!長標(biāo)志符命名,代碼縮進(jìn),一對大括號范圍不超過一屏幕,等等。

第二個要裝進(jìn)行囊的是耐心,所謂工欲善其事,必先利其器。要想成功,沒有一個相對平淡的過程是不可能的。這不僅僅指你在學(xué)習(xí)過程中要有耐心,要循序漸進(jìn),而起也說的是另一個重要的方面:調(diào)式程序。調(diào)試是寫程序過程中一個重要的方面,如果有人能一次寫成程序,牛啊,而且是大牛,不光是大牛,還是老子騎的那頭青牛,凡人是做不道的!調(diào)試是每個程序必定經(jīng)歷的歷程。經(jīng)常有同學(xué)問我:老師,我的程序完全沒錯誤啊,都是照書抄的啊!怎么就運行不出來呢?對于這個問題我也看不出來!你們有問題可以找我,找其他的老師,老師找誰???李師父?那是很荒謬的!我就只好坐下來調(diào)試,這個說實話,調(diào)試是很枯燥的,所以有同學(xué)抱怨說我操作太快,不理解為什么要這樣,為什么要那樣,我的脾氣不太好,一煩躁就會罵人地,所以,這個就需要你們自己修煉內(nèi)功了! 有了這兩個就可以了,可以出發(fā)了,估計有人說了,英語和數(shù)學(xué)不要了?大家都說大學(xué)生了,這種問題就不要問了嘛!你已經(jīng)用早晨和傍晚的時光學(xué)習(xí)了英語了,我這個沒有要去,計算機(jī)專業(yè)英語超簡單,小學(xué)水平而已,記住一些專業(yè)詞匯就可以了!關(guān)于數(shù)學(xué),說數(shù)學(xué)好,寫程序就好是沒有科學(xué)根據(jù)的!我就有個同學(xué),數(shù)學(xué)回回100分,寫程序也就是hello world的程度,不過人家現(xiàn)在是數(shù)學(xué)博士了!慚愧??!做為的大學(xué)生,而且是我們這個專業(yè)的大學(xué)生,已經(jīng)完全具備了寫程序所需要的數(shù)學(xué)素養(yǎng)了!所以這個不是我們要擔(dān)心的,Ready? Go!

第一招,學(xué)什么呢?打狗棍法!呵呵

有一個偉人說過:“重復(fù)權(quán)威是成熟的必經(jīng)之路”,這是站在巨人的肩膀上的做法,

習(xí)武之人首先要學(xué)的都是各種套路,比方說辟邪劍法,然后才能融會貫通,開宗流派;我們學(xué)習(xí)寫程序也要這樣來,這是一個捷徑,幫你走得更遠(yuǎn)得捷徑。 運行效果是不是很好?你學(xué)數(shù)據(jù)結(jié)構(gòu)的時候,樹啊,圖啊,你都可以這樣輸出啊,很多地方你都可以做的更好呢!

好了,到這里,我們基本解決了在學(xué)習(xí)C語言程序設(shè)計時的一些方法論的東西,關(guān)于具體的學(xué)習(xí)過程,如果你要我在這里給你們講指針要如何學(xué)習(xí)?函數(shù)要如何學(xué)習(xí)?那我講的內(nèi)容也不會多于任課老師的內(nèi)容,或者開個專題叫“如何學(xué)好指針”,當(dāng)然,如果你愿意和我探討一下指針的本質(zhì)和高級應(yīng)用的話,課后,課后?。?/p>

現(xiàn)在,我們要談最后一個問題!我們這個專業(yè)的女生的比例較其他的工科專業(yè)還是要高一些的,不知道為什么經(jīng)常到如下的說法:1,我是女生,我不適合寫程序??;2,我的性格比較外向,不適合坐下來安靜的寫程序呢!

性格外向不適合寫程序?你們看我啊,覺得我是性格內(nèi)向的任嗎?程序員也非常需要發(fā)散的外向型思維,老比,地球上最富裕的人說,他招程序員更愿意招原來是學(xué)物理的人,因為學(xué)物理的人的思維可以從極大(宇宙)到極?。ㄔ樱?。所有,說性格外向不適合寫程序的話是懶惰的借口,是要掩蓋他不可告人的目的的接口!狂打PP!

女生又為什么不適合寫程序呢?我到知道一個理由,對皮膚不好?。∧銈兛次疫@滿臉滄桑的,就知道了!除此之外,還會又其他的理由嗎?英國科學(xué)家早就證明了男女的區(qū)別完全不是人們想象的那樣,很多方面女性是要超過男性的!想想以前的母系社會,現(xiàn)在的惠安女!

我就見過一個上市公司的研發(fā)二部全是女性!,從軟件工程師到硬件工程師再到部門經(jīng)理都是女性,業(yè)績根本不輸其他的研發(fā)部門,這個公司在湖南,不是我瞎掰的!

同學(xué)們,問大家一個問題,“二十一世紀(jì)最貴是什么?”,不錯,是人才,所以,我可以負(fù)責(zé)任地告訴大家,“不學(xué)好C語言,老師很生氣”,老師很生氣,后果怎么樣???是很嚴(yán)重!

That’s all, thank you!

學(xué)習(xí)C語言不是一朝一夕的事情,但也不需要花費十年時間才能精通。如何以最小的代價學(xué)習(xí)并精通C語言是本文的主題。請注意,即使是“最小的代價”,也絕不是什么捷徑,而是以最短的時間取得最多的收獲,同時也意味著你需要經(jīng)歷艱苦的過程。

一、要讀就讀好書,否則不如不讀

所有初學(xué)者面臨的第一個問題便是:如何選擇教材。好的開始是成功的一半,選擇一本優(yōu)秀的教材是事半功倍的關(guān)鍵因素。不幸的是,學(xué)校通常會幫你指定一本很差勁的C語言課本;而幸運的是,你還可以再次選擇。

大名鼎鼎的譚浩強(qiáng)教授出了一本《C語言程序設(shè)計》,據(jù)說發(fā)行量有超過400萬,據(jù)我所知,很多學(xué)校都會推薦這本書作為C語言課本。雖然本人的名字(譚浩宇)跟教授僅僅一字之差,但我是無比堅定地黑他這本書的。這本書不是寫給計算機(jī)專業(yè)的學(xué)生的,而是給那些需要考計算機(jī)等級考試的其它專業(yè)學(xué)生看的。這本書的主要缺點是:例子程序非常不專業(yè),不能教給你程序設(shè)計應(yīng)該掌握的思考方式;程序風(fēng)格相當(dāng)?shù)夭缓?,會讓你養(yǎng)成亂寫代碼的惡習(xí);錯誤太多,曾經(jīng)有人指出過這本書的上百個錯誤,其中不乏關(guān)鍵的概念性錯誤。好了,這本書我也不想說太多了,有興趣大家可以百度一下:)

Kernighan和Ritchie的《The C Programming Language》(中譯名《C程序設(shè)計語言》)堪稱經(jīng)典中的經(jīng)典,不過舊版的很多內(nèi)容都已過時,和現(xiàn)在的標(biāo)準(zhǔn)C語言相去甚遠(yuǎn),大家一定要看最新的版本,否則不如不看。另外,即使是最經(jīng)典最權(quán)威的書,也沒有辦法面面俱到,所以手邊常備一本《C語言參考手冊》是十分必要的?!禖語言參考手冊》就是《C Reference Manual》,是C語言標(biāo)準(zhǔn)的詳細(xì)描述,包括絕大多數(shù)C標(biāo)準(zhǔn)庫函數(shù)的細(xì)節(jié),算得上是最好的標(biāo)準(zhǔn)C語言的工具書。順便提一句,最新的《C程序設(shè)計語言》是根據(jù)C89標(biāo)準(zhǔn)修訂的,而《C語言參考手冊》描述的是C99標(biāo)準(zhǔn),二者可能會有些出入,建議按照C99標(biāo)準(zhǔn)學(xué)習(xí)。還有一本《C和指針》,寫得也是相當(dāng)?shù)夭诲e,英文名是《Pointers on C》,特別地強(qiáng)調(diào)指針的重要性,算是本書的一個特點吧。不過這本書并不十分適合初

學(xué)者,如果你曾經(jīng)學(xué)過C語言,有那么一些C語言的基礎(chǔ)但又不是很扎實,那么你可以嘗試一下這本書。我相信,只要你理解了指針,C語言便不再神秘。

如果你已經(jīng)啃完了一本C語言教材,想要更進(jìn)一步,那么有兩本書你一定要看。首先是《C Traps and Pitfalls》(中譯名《C陷井與缺陷》),很薄的一本小冊子,內(nèi)容非常非常地有趣。要注意一點,這本書是二十多年前寫成的,里面提到的很多C語言的缺陷都已被改進(jìn),不過能夠了解一些歷史也不是什么壞事。然后你可以挑戰(zhàn)一下《Expert C Programming》(中譯名《C專家編程》),書如其名,這本書頗具難度,一旦你仔細(xì)讀完并能透徹理解,你便可以放心大膽地在簡歷上寫“精通C語言”了。

切記一個原則,不要讀自己目前還看不懂的書,那是浪費生命。如果你看不懂,那你一定是缺失了某些必需基礎(chǔ)知識。此時,你要仔細(xì)分析自己需要補(bǔ)充哪些內(nèi)容,然后再去書店尋找講述的這些內(nèi)容的書籍。把基礎(chǔ)知識補(bǔ)充完畢再回頭來學(xué)習(xí),才會真正的事半功倍。

二、Unix/Linux還是Windows,這是個很大的問題

不同的編程環(huán)境會造就出不同思維的程序員。Windows的程序員大多依賴集成開發(fā)環(huán)境,比如Visual Studio,而Unix程序員更加鐘愛Makefile與控制臺。顯而易見,集成開發(fā)環(huán)境更容易上手,在Windows上學(xué)習(xí)C語言,只需要會按幾個基本的Visutal C++工具欄按鈕就可以開始寫Hello, World!了,而在Unix下,你需要一些控制臺操作的基本知識。有人也許認(rèn)為Unix的環(huán)境更簡潔,但習(xí)慣的力量是很大的,大家都很熟悉Windows的基本操作,而為了學(xué)習(xí)C語言去專門裝一個Unix系統(tǒng),似乎有點不劃算。

對于一個只懂得Windows基本操作、連DOS是什么都不知道的新手而言,盡快做一些有趣而有意義的事情才是最重要的。用C語言寫一個小程序遠(yuǎn)比學(xué)習(xí)ls、cat等命令有趣,況且我們要專注于C語言本身,就不得不暫時忽略一些東西,比如編譯鏈接的過程、Makefile的寫法等等等等。

三、萬事俱備,你就是東風(fēng)

書已選定,環(huán)境配置完成,正所謂萬事俱備,只欠你自己的努力了。請從書的前言開始,仔細(xì)地閱讀手頭的教材,很多人看書喜歡直接從第一章開始看,這是錯誤的做法。前言是作者對整本書的大體介紹,作者一般會告訴你需要什么基礎(chǔ)才能夠順利閱讀本書,這可以幫助你檢驗自己的基礎(chǔ)知識是否已經(jīng)具備??赐昵把?,還要瀏覽一下目錄,了解一下書的整體結(jié)構(gòu),順便給自己安排一下學(xué)習(xí)計劃。

學(xué)習(xí)C語言,必需注意每一個細(xì)節(jié),書上的例子代碼一定要自己親自敲一遍,編譯執(zhí)行輸出都跟書上說的一致才能算是學(xué)完了一個例子,如果不一致,就要仔細(xì)找原因。出了書本上有的例子,自己還要“創(chuàng)造”一些例子,比如學(xué)習(xí)運算符優(yōu)先級的時候,可以寫幾個相同的表達(dá)式,在不同的位置加上括號,看看有哪些不同的行為,比如*p++和(*p)++,又比如a = b == c、(a = b) == c和a = (b == c)等等。自己抄的書上的例子以及改造之后的例子,還有自己“創(chuàng)造”的例子,都應(yīng)該仔細(xì)地歸類保存,并且要在源代碼中寫上簡短的注釋,闡述這個例子的意圖。

例子之后就是習(xí)題了,我建議初學(xué)者把所有的習(xí)題都獨立做一遍,然后對照答案的代碼,看看自己的代碼有那些不足,再試著修改自己的代碼。很多人不重視習(xí)題,這是極大的錯誤,因為作者通常會在習(xí)題中說明一些重要的道理,而不是單純地檢驗前面的知識。

也許你認(rèn)為這樣學(xué)習(xí)太慢,其實不然。學(xué)得細(xì)致就不用走回頭路,等你學(xué)到后面才發(fā)現(xiàn)自己前面沒搞清楚,那才是真的得不償失。一般說來,整本書讀完,你應(yīng)該完成數(shù)千行乃至上萬行的代碼,無論是原封不動照抄書上的,還是自己心血來潮寫就的,都是今后繼續(xù)學(xué)習(xí)的一筆財富。以我自己舉例,閱讀《Windows核心編程》時(我只閱讀了3/4的內(nèi)容),除了抄書上的代碼,還自己寫了很多例子,一共有5574行(用unix下的wc工具統(tǒng)計),時隔多日,我早已記不清Windows的系統(tǒng)編程了,但只要花幾分鐘翻出以前的代碼看看,便會重新了然于胸。所謂好記性不如爛筆頭,就是這個道理。

篇四:C語言學(xué)習(xí)方法

初學(xué)者遇到最多的困惑是:上課也能聽懂,書上的例題也能看明白,可是到自己動手做編程時,卻不知道如何下手。發(fā)生這種現(xiàn)象的原因有三個:

、所謂的看懂聽明白,只是很膚淺的語法知識,而我們編寫的程序或軟件是要根據(jù)要解決問題的實際需要控制程序的流程,如果你沒有深刻地理解C語言的語句的執(zhí)行過程(或流程),你怎么會編寫程序解決這些實際問題呢?

二、用C語言編程解決實際問題,所需要的不僅僅是C語言的編程知識,還需要相關(guān)的專業(yè)知識。例如,如果你不知道長方形的面積公式,即使C語言學(xué)得再好你也編不出求長方形的面積的程序來。

三、C語言程序設(shè)計是一門實踐性很強(qiáng)的課程,“紙上談兵”式的光學(xué)不練是學(xué)不好C語言的。例如,大家都看過精彩自行車雜技表演,假如,你從來沒有騎過自行車,光聽教練講解相關(guān)的知識、規(guī)則、技巧,不要說上臺表演、就是上路你恐怕都不行。

出現(xiàn)問題原因清楚了,那么如何學(xué)習(xí)呢?請你看【C語言學(xué)習(xí)六步曲】

第一步、驗證性練習(xí)

在這一步要求按照教材上的程序?qū)嵗M(jìn)行原樣輸入,運行一下程序是否正確。在這一步基本掌握C語言編程軟件的使用方法。

第二步、照葫蘆畫瓢

在第一步輸入的C程序的基礎(chǔ)上進(jìn)行試驗性的修改,運行一下程序看一看程序結(jié)果發(fā)生了什么變化,分析結(jié)果變化的原因,加深新學(xué)知識點的理解。事實上這和第一步時同步進(jìn)行的,實現(xiàn)“輸入”加深知識的記憶,“修改”加深對知識的理解。記憶和理解是相輔相成的,相互促進(jìn)。

第三步、不看教材看是否能將前兩步的程序進(jìn)行正確地輸入并運行。

在這一步要求不看教材,即使程序不能運行,看能否將其改正,使其能正確運行。目的是對前兩步的記憶、理解進(jìn)一步強(qiáng)化。

第四步、增強(qiáng)程序的調(diào)試能力

按照易出錯的類型,將教材中的正確的程序改成錯誤的程序,運行一下程序,看出現(xiàn)的錯誤信息提示,并記下錯誤信息,再將程序改成正確的,運行一下程序。這樣反復(fù)修改,就能夠?qū)W習(xí)C語言程序發(fā)生錯誤的原因和修改錯誤的能力。

注意:每次只改錯一個地方,目的是顯示發(fā)生該錯誤的真正原因,避免一次改動多個地方,搞清發(fā)生錯誤的真正原因,切記?。。。?/p>

注意:上機(jī)調(diào)試程序時要帶一個記錄本,記下英文錯誤提示信息和解決該錯誤問題的方法,積累程序調(diào)試經(jīng)驗,避免在編程犯同樣的錯誤,切記?。。。?。

第五步、研究典型的C語言程序,提高程序設(shè)計能力

經(jīng)過上述過程的學(xué)習(xí),我們已經(jīng)學(xué)會了C語言各種語句的流程(即計算機(jī)是如何執(zhí)行這些語句的過程),然后就可以研讀別人編寫C語言經(jīng)典程序,看懂別人是如何解決問題的,學(xué)習(xí)解決問題的方法和程序設(shè)計技巧,提高自己的程序設(shè)計能力。

第六步、研究課程設(shè)計源成序,提高C語言程序設(shè)計能力和調(diào)試較大程序的能力。

C語言課程設(shè)計的目的:是讓學(xué)生綜合利用所學(xué)的C語言知識,解決一些接近實際問題題目,提高程序設(shè)計和調(diào)試較大程序的能力,為進(jìn)一步進(jìn)行軟件開發(fā)打下堅實的基礎(chǔ)。

C語言好學(xué)嗎?

C語言好學(xué)嗎?初學(xué)者常常問這個問題。答案很簡單,對C語言感興趣,有強(qiáng)烈的學(xué)習(xí)欲望,就容易學(xué)。如果不感興趣,再簡單的知識也學(xué)不會。

最后送C語言初學(xué)者一句話來共勉:首先要相信自己是有能力學(xué)好C語言的,然后不惜一切

代價把這種能力表現(xiàn)出來,你就成功了。做任何事,何嘗不是這樣呢?

成為編程高手的二十二條軍規(guī)【轉(zhuǎn)載】

1.大學(xué)生活豐富多彩,會令你一生都難忘,但難忘有很多種,你可以學(xué)了很多東西而難忘,也會因為什么都沒學(xué)到而難忘!

2.計算機(jī)專業(yè)是一個很枯燥的專業(yè),但即來之、則安之,只要你努力學(xué),也會發(fā)現(xiàn)其中的樂趣的。

3.記?。喝f丈高樓平地起!基礎(chǔ)很重要,尤其是專業(yè)基礎(chǔ)課,只有打好基礎(chǔ)才能學(xué)得更深。

4.C語言是基礎(chǔ),很重要,如果你不學(xué)好C語言,那么什么高級語言你都學(xué)不好。

8.學(xué)習(xí)編程的秘訣是:編程,編程,再編程;

9.認(rèn)真學(xué)習(xí)每一門專業(yè)課,那是你今后的飯碗。

10.在學(xué)校的實驗室就算你做錯一萬次程序都不會有人罵你,如果在公司你試試看!所以多去實驗室上機(jī),現(xiàn)在錯得多了,畢業(yè)后就錯得少了。

13.你會買好多參考書,那么請把書上的程序例子親手輸入到電腦上實踐,即使配套光盤中有源代碼。

14.VC、C#、.NET這些東西都會過時,不會過時的是數(shù)據(jù)結(jié)構(gòu)和優(yōu)秀的算法!

15.記?。簳接脮r方恨少。不要讓這種事發(fā)生在你身上,在學(xué)校你有充足的時間和條件讀書,多讀書,如果有條件多讀原版書,你要知道,當(dāng)一個翻譯者翻譯一本書時,他會不知不覺把他的理念寫進(jìn)書中,那本書就會變得像雞肋!

16.我還是強(qiáng)調(diào)認(rèn)真聽專業(yè)課,因為有些課像《數(shù)據(jù)結(jié)構(gòu)》、《編譯原理》、《操作系統(tǒng)》等等,這種課老師講一分鐘能讓你明白的內(nèi)容,你自己看要看好幾個月,有的甚至看了好幾年都看不明白。

17.抓住在學(xué)校里的各種實踐的機(jī)會,要為自己積累經(jīng)驗,就業(yè)時經(jīng)驗比什么都有用。

18.多去圖書館,每個學(xué)校的圖書館都有很多好書等你去看!

20.如果你決定了要當(dāng)一個好的程序員,那么請你放棄游戲,除非你是那種每天只要玩游戲就能寫出好程序的天才!

21.你要有足夠的韌性和毅力! 22.找到只屬于你自己的學(xué)習(xí)方法。不要盲目的追隨別人的方法,適合自己的才是最好的!

_____________________________________________________________________

成為編程高手的八大奧秘

1、扎實的基礎(chǔ)

4、不鉆牛角尖

當(dāng)你遇到障礙的時候,不妨?xí)簳r遠(yuǎn)離電腦,看看窗外的風(fēng)景,聽聽輕音樂,和朋友聊聊天。當(dāng)我遇到難題的時候會去玩游戲,當(dāng)負(fù)責(zé)游戲的那部分大腦細(xì)胞極度亢奮的時候,負(fù)責(zé)編程的那部分大腦細(xì)胞就得到了充分的休息。當(dāng)重新開始工作的時候,我會發(fā)現(xiàn)那些難題現(xiàn)在竟然可以迎刃而解。

5、對答案的渴求

只要你堅定信念,一定要找到問題的答案,你才會付出精力去探索,即使最后沒有得到答案,在過程中你也會學(xué)到很多東西?

6、多與別人交流

三人行必有我?guī)煟苍S在一次和別人不經(jīng)意的談話中,就可以迸出靈感的火花。多上上網(wǎng),看看別人對同一問題的看法,會給你很大的啟發(fā)。

7、良好的編程風(fēng)格

注意養(yǎng)成良好的習(xí)慣。

8、韌性和毅力

這也許是“高手”和一般程序員最大的區(qū)別。高手們并不是天才,他們是在無數(shù)個日日夜夜中磨煉出來的。成功能給我們帶來無比的喜悅,但過程卻是無比的枯燥乏味。

c語言是一個實用性很強(qiáng)的語言。你如果想要學(xué)好它,就得下一翻功夫。

首先你要有一個正確的態(tài)度,沒有一個正確態(tài)度的人是學(xué)不好任何東西的。你如果真想學(xué)好C語言的話,你就要做好好好學(xué)它的準(zhǔn)備,不要三心二意。

其次,你要了解你學(xué)這個語言的目的。你是想過計算機(jī)等級考試呢?還是想真正想用這一門語言。這就有很大的區(qū)別,這決定你學(xué)習(xí)的程度。再次,你要了解你需要的教材。什么樣的教材才是適合你。你要認(rèn)真的選,不要太隨意了。因為不同的教材程度不同,也不一定適合你。然后,就是學(xué)的問題了。你做好了上面的準(zhǔn)備,就好好開始學(xué)了??墒菍W(xué)好一門語言,一個好的方法很重要的。你要從整體上來理解C

語言,認(rèn)識到C語言的優(yōu)勢,還有C語言的特點。C語言是面向過程的一門語言,特別強(qiáng)調(diào)各個程序的關(guān)系。像程序之間的調(diào)用,這是很平常的。一門語言的基礎(chǔ)部分不過是一些關(guān)于數(shù)的類型,字符的類型的定義。你只要認(rèn)真看不難明白的。不過最好的方法還是上機(jī)調(diào)試。在這一階段做一些簡單的程序。來明白C語言的編程環(huán)境,數(shù)字的類型。這樣理解起來會更快些,也比較容易記憶。后來,就是學(xué)習(xí)一些過程語言的基礎(chǔ)的模式。順序,循環(huán),選擇這些東西。這些東西都是一些活的東西,千萬不要死記硬背,這是沒有用的。在這一階段,你可以編一些比較簡單的程序。像數(shù)據(jù)的計算,成績的判定等等。

隨著學(xué)習(xí)的深入,你會發(fā)現(xiàn)C語言有許多東西很有趣的。這樣學(xué)習(xí)不再是一個多么難的事了,而是一件快樂的事。最后C語言和任何一門語言一樣需要多上機(jī)調(diào)試,多動腦。C語言的基礎(chǔ)部分很快就會掌握的。

最后記著:沒有付出就沒有回報!

C語言確實比較難學(xué),但是你要想學(xué)好就一定要堅持下去。我想你應(yīng)該也是看的譚老爺子的

《C程序設(shè)計》吧,吧課本好好的看看,看完每一章節(jié),翻到習(xí)題,對照著那本答案書一遍一遍的敲代碼,直到你自己能不看書把它敲下來,當(dāng)你把這本書都敲完的時候你會發(fā)現(xiàn)你已經(jīng)入門了!其實學(xué)這些東西沒有什么捷徑,關(guān)鍵是 多看多練習(xí),最重要的就是多練習(xí),一遍一遍的敲代碼,書看不懂的時候就多看幾遍自然而然就會懂了。

一定要多練習(xí),光看不練什么都學(xué)不會的。

一定要記住,勤動手,動手!?。。。。。。。。。?!

初學(xué)者學(xué)習(xí)計算機(jī)語言要會“讀程序”,要對小型的應(yīng)用型、游戲型程序感興趣,并模仿去加深對C語言程序設(shè)計的理解和操作,只有不斷地寫程序、調(diào)試程序才能得到編寫程序的經(jīng)驗和加深對程序的理解,這也是學(xué)習(xí)編寫優(yōu)秀高級程序的秘密武器。在網(wǎng)上,多看看別人寫的代碼,收集一些自己認(rèn)為比較好的代碼,然后再多寫代碼

學(xué)習(xí)計算機(jī)語言最好的方法是什么?答曰:讀程序。

沒錯,讀程序是學(xué)習(xí)C語言入門最快,也是最好的方法。如同我,現(xiàn)在學(xué)習(xí)新的J#,C#等其他語言,不再是抱著書本逐行啃,而是學(xué)習(xí)它們的例程。當(dāng)然,對于沒有學(xué)過任何計算機(jī)語言的初學(xué)者,最好還是先閱讀教程,學(xué)習(xí)完每一章,都要認(rèn)真體會這一章的所有概念,然后不放過這一章中提到的所有例程,然后仔細(xì)研讀程序,直到每一行都理解了,然后找?guī)讉€編程題目,最好是和例程類似的或一樣的,自己試圖寫出這段已經(jīng)讀懂的程序,不要以為例程你已經(jīng)讀懂了,你就可以寫出和它一樣的程序,絕對不一定,不相信你就試一試吧,如果寫不出來,也不要著急,回過頭來再繼續(xù)研究例程,想想自己為什么寫不出來,然后再去寫這段程序,反反復(fù)復(fù),直到你手到擒來為止,祝賀你,你快入門了。

1、學(xué)好C語言,你可以很好地應(yīng)付任何一種編程工具。

2、一定要多上機(jī)練習(xí),通過程式了解相關(guān)知識。幾經(jīng)反復(fù)方得正果。

3、不要把學(xué)習(xí)C語言當(dāng)成一種任務(wù),更不要把它看成很難完成的任務(wù)。要充滿自信,只要是一個智力正常的人都能學(xué)好C語言。始終保持游戲的心態(tài),多發(fā)現(xiàn)其中的樂趣。當(dāng)感到編程趣味無窮,那你在電腦方面將前程無量。

4、如果一個程式一時無法弄清楚最后暫時放在一邊,過一段時間你可能會從其他的程式中悟出道理。

5、C語言是一個整體,各個方面是有機(jī)聯(lián)系的,要從總體上把握它,不要把它割裂成互不關(guān)聯(lián)的部件。

6、不要完全相信教材(包括本講義),所有結(jié)論最好都上機(jī)驗證。

建議先學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)。教材最好是清華大學(xué)出版社嚴(yán)蔚敏的數(shù)據(jù)結(jié)構(gòu)(C語言版)。能夠把上面的算法用C語言都實現(xiàn),就很牛了。

有時間可以穿插看一下清華大學(xué)出版社的算法類的資料。

首先,基礎(chǔ)扎實真的很重要,什么語言其實不重要。只要上了道,語言基本上都是一通百通的。對學(xué)習(xí)編程,應(yīng)當(dāng)記住這樣三句話“經(jīng)得起誘惑,耐得住寂寞,受得起挫折”,我雖然記住了,但要真正去做遠(yuǎn)比記住困難。

其次,興趣是最好的老師,實踐是進(jìn)步的捷徑,需求是靈感的源泉。如果你不喜歡編程,那么有一天你肯定會厭倦。我本不是學(xué)計算機(jī)的,但是我喜歡編程,這是支持我一直努力下去的源泉,即使沒有人逼你,你也能靜下心來學(xué)習(xí)。不斷強(qiáng)化自己的動手能力,多多實踐。動手編碼的過程就是一個強(qiáng)化記憶的過程,是發(fā)現(xiàn)問題的過程,更是鍛煉能力的過程。

以上看法全是我認(rèn)為對的。

要理解C語言的數(shù)據(jù)類型和語句,不用去專門背它們,不記得時再翻書,用多了自然會記住。還要多看些編程高手的程序,學(xué)學(xué)他們編程的邏輯思維。

仔細(xì)想想,實際上學(xué)習(xí)C語言,最初是應(yīng)該先學(xué)習(xí)C語言的基礎(chǔ)語法。也就是學(xué)習(xí)C語言的組成部分。一部分一部分的向下學(xué)。知識要一點一點的鞏固的。本人假設(shè)你學(xué)習(xí)C語言是看“C程序設(shè)計”.我認(rèn)為你應(yīng)該先把C程序設(shè)計仔細(xì)的看一便,這樣你應(yīng)該可以對整本書和C語言的整體組成結(jié)構(gòu)有個大致的清晰了解。不要認(rèn)為學(xué)習(xí)只是在看書,看一便就可以了。你應(yīng)該學(xué)會記筆記,在記筆記的過程中,其實你就是在學(xué)習(xí),從知識的分析,理解,歸納,到最后以自己的思維方式記下來,這整個過程就是把書中的知識抽象到你自己的腦袋里。個人感覺學(xué)習(xí)效果非常好,不懂就問,要多多與人交流,要多思考,遇到問題自己先多想想,實在找不到問題出在哪,在去請教別人,不要有不懂的地方就直接去問別人,那樣對你沒太大的好處。其實要學(xué)會給自己安排適合自己的學(xué)習(xí)計劃,我大致來估計了一下,如果你每天能花4個小時安靜的,用心去學(xué)習(xí)的話,30天之內(nèi)你應(yīng)該可以掌握C語言了。其實在整個學(xué)習(xí)過程中你大多數(shù)時間都在看書,而不是面對電腦。在調(diào)試你的代碼之前,先在紙上把核心代碼大致寫出來,分析一下:程序的組成模塊(可以是一個函數(shù)或多個),由幾個函數(shù)來實現(xiàn),接口的封裝。采用哪種數(shù)據(jù)結(jié)構(gòu)更適合一些。關(guān)鍵在于算法。在你的最終程序發(fā)布之前,最好把你的代碼行數(shù)減到最少。不要只想著把代碼寫多。過多的代碼對程序來說是負(fù)擔(dān)。你可以在Internet 上下載一個文件(C語言經(jīng)典例題。chm),里面大致包含了上百個經(jīng)典的例題。每一個例題都是C語言某部分的典型應(yīng)用。花時間把這個文件中的所有例題代碼研究一下,最好能自己把代碼改善,以自己的方式來求解。以后你會發(fā)現(xiàn)你在寫一些應(yīng)用程序的時候經(jīng)常會有一些算法。會涉及到我之前提到的例題。最后我認(rèn)為你可以自己來寫C語言標(biāo)準(zhǔn)函數(shù),比如strcpy(); strlen();strcat();最好不要過分依賴庫函數(shù)。

篇五:c語言學(xué)習(xí)方法

計算機(jī)基礎(chǔ)和程序設(shè)計學(xué)習(xí)方法

大學(xué)之前的基礎(chǔ)

大家是不是認(rèn)為我大學(xué)之前就積累了很多計算機(jī)方面的基礎(chǔ)知識呢?事實不是這樣的,我的小學(xué)是在們村里上的,根本就接觸不到電腦,高中的電腦課時有一次沒一次的,基本上都被老師占用上別的課了,就是高二的江蘇省計算機(jī)的考試也只是背題目過的。至于瀏覽器只知道IE,QQ也是6月9號晚上去網(wǎng)吧我干的唯一一件事,本來準(zhǔn)備包夜的,無奈自己什么都不會,只好回宿舍睡覺了,那好像是我第三次去網(wǎng)吧,那時不知道有迅雷可以下載東西,至于最基本的word,excel是上個暑假惡補(bǔ)了一下。PPT我相信在座不會的是極少數(shù)吧,我是這學(xué)期要做班長論壇PPT才學(xué)的。所以我并沒有什么關(guān)于計算機(jī)的基礎(chǔ),可謂是大學(xué)之前一片空白。

大學(xué)開始現(xiàn)狀

大學(xué)一切都是美好的,一切都是陌生的,一切都是殘酷的。剛開始時我的學(xué)習(xí)方法還都是和高中一樣的,除了預(yù)習(xí)高數(shù),其他一切都是浮云了。我們的計算機(jī)老師也許和大家的不一樣,大學(xué)計算機(jī)信息基礎(chǔ)教程應(yīng)該只講了三個星期吧,我的基礎(chǔ)大家也知道了,而且我的老師又不按書上的講,我就更當(dāng)聽天書了。

就到了第四個星期吧,開C語言的課,結(jié)果我發(fā)現(xiàn)老師好像講了180頁的內(nèi)容吧,一點也不夸張,就連文件都講了,帶了C語言書的同學(xué)可以看看文件在書上的哪個地方。課后我就想大學(xué)計算機(jī)信息基礎(chǔ)教程我是一個字不懂,現(xiàn)在老師又講了180,要是到期末考試我可怎么辦啊,而且我是班上學(xué)號最后的,這樣的如果我不掛還有誰掛呢,要是大家的期中考試在一年前的時間我來考,我肯定考不到二十分的。

請問在座的各位同學(xué)有多少沒有考到二十分的?又有多少同學(xué)有我上面所說的那么好的基礎(chǔ)的?

可是現(xiàn)在呢?我是這么樣的呢?全國計算機(jī)等級考試是在今年的3月份考的,當(dāng)時C語言的課還沒有授完,我就以優(yōu)秀通過了。江蘇省計算機(jī)等級考試是這學(xué)期10月份考的,因為班上的事情在考試前一直沒有時間復(fù)習(xí),也就是我是裸考的,結(jié)果還以以優(yōu)秀通過了。

下面就講講我的學(xué)習(xí)方法吧。

學(xué)習(xí)方法

大學(xué)計算機(jī)信息基礎(chǔ)教程

對于大學(xué)計算機(jī)信息基礎(chǔ)教程沒有其他好的學(xué)習(xí)方法,一個字的看,最后一章就不要看了,一是不這么能看懂,二是考試不這么考到。那如何去看呢,首先沒有重點,不要讓老師給你劃重點,重點就都是重點,就考試來講什么都考,就個人而言,為了自身的發(fā)展就都要學(xué),為什么叫基礎(chǔ)教程呢,因為這些都是一些最基礎(chǔ)的東西。比如在座的各位有多少知道MIDI,實質(zhì)上就是樂譜的數(shù)字表示。用與計算機(jī)合成音樂的。

不同于c語言的是大學(xué)計算機(jī)信息基礎(chǔ)教程要慢慢看,一章一章的看,每看完一章然后就做關(guān)于這章的習(xí)題,然后再把這章在看一遍,把做錯的相關(guān)知識點重點看,最后在把自己做的習(xí)題在看一遍每一個選項搞懂就ok了。最后說白了就看你有沒有看了。不看不會,認(rèn)真看就會了。

C語言

很多人對學(xué)習(xí)c語言感到無從下手,經(jīng)常問我同一個問題:究竟怎樣學(xué)習(xí)c語言? c語言是一個實用性很強(qiáng)的語言。你如果想要學(xué)好它,就得下一翻功夫??墒谴蠖鄶?shù)人都認(rèn)為它太難學(xué)了。所以就沒有認(rèn)真的學(xué),也當(dāng)然學(xué)不好了。

首先你要有一個正確的態(tài)度,沒有一個正確態(tài)度的人是學(xué)不好任何東西的。你如果真想學(xué)好C語言的話,你就要做好好好學(xué)它的準(zhǔn)備,不要三心二意。

其次,你要了解你學(xué)這個語言的目的。你是想過計算機(jī)等級考試呢?還是想真正想用這一門語言。這就有很大的區(qū)別,這決定你學(xué)習(xí)的程度。

你可能認(rèn)為我們學(xué)院要學(xué)習(xí)它干什么呢?又有什么用呢?

那大家想不想什么東西都像電腦一樣智能化呢?

如果想那這就是我們學(xué)習(xí)C語言的理由,就拿電腦而言吧,是有許多的微型計算機(jī)集成的,說白了就是單片機(jī),而單片機(jī)是深入我們生活的,比如電子表之類的。

而單片機(jī)能接受的語言有2種,一是匯編語言,另一個就是C語言了,如果C語言要一年學(xué)的話,那匯編語言至少要學(xué)3年。到了大三的時候我們會有微機(jī)原理的專業(yè)選修課,到時大家就可以選了?,F(xiàn)在社會發(fā)展的趨勢不就是實現(xiàn)智能化嗎。又有誰會嫌自己的東西太智能話人性化呢。為了讓自己的生活更美好所以大家得把它當(dāng)專業(yè)課看待。

然后,就是學(xué)的問題了。你做好了上面的準(zhǔn)備,就好好開始學(xué)了??墒菍W(xué)好一門語言,一個好的方法很重要的。C語言是面向過程的一門語言,特別強(qiáng)調(diào)各個程序的關(guān)系。像程序之間的調(diào)用,所謂面向過程就是你要知道他在計算機(jī)了每一步到底是怎么的一個執(zhí)行過程。所以你要多的把它透。

下面我給大家提幾點建議

1、要提前預(yù)習(xí),不預(yù)習(xí)一切都是白費,c語言上課的容量以我的眼光來看是很大的,而且大學(xué)課都是2節(jié)課一起的,如果不預(yù)習(xí),上課也許前面的你懂了,但是頭腦的容量是有限的,上到后面你就會漸漸不懂,如果長此下去,你的C語言就可想而知了,況且老師不可能把書上的知識全部講到。所以對于c語言預(yù)習(xí)是必不可少的。而且在預(yù)習(xí)得時候要達(dá)到懂的程度,也就是你只把上課當(dāng)做一種提升自己的時候,從老師那里學(xué)書上沒有的知識。

2、如何正確的預(yù)習(xí)呢?要帶著思考看書,不思考書是看不下去的,看著看著頭就暈了,馬上就不想看了,結(jié)果就不看了。書不是看一遍就懂的,要每次在看不下去之后再從你這次開始看的地方看,看上幾遍就懂了。如果你在暈頭轉(zhuǎn)向之后就停止的話,差不多就等同于這次沒看吧,白白浪費時間了,所以得多看多思考。如何思考呢?你要帶著計算機(jī)是這樣實現(xiàn)理解這個語句的,為什么要有這個語句?就比如變量為什么要先聲明后使用呢,因為他不是人,不知道他是變量,只有你用語句表達(dá)出是什么,他才知道是什么,你不說的她不知道。所以電腦是很笨的。

3、上課時相當(dāng)重要的,老師會講無形中強(qiáng)調(diào)書上的重點,編程在哪些地方容易錯(比如在scanf中的&),以及一些編程的技巧。當(dāng)然c語言無所謂重點,都是重點,也許你就會因為一個小小的錯誤最后vc給你報100多個錯誤的。習(xí)題課一定不要逃,基本上現(xiàn)在我們

常見編程的老師都會講到。當(dāng)然了第一學(xué)期都是一些基本的,和高中的偽代碼沒有什么多大的區(qū)別,有的就是有好多注意點,所以有了預(yù)習(xí)的基礎(chǔ)上課這些東西一點你就會明白的。切記不要一節(jié)課或幾節(jié)課不懂就不聽了,課后也許你這要看上一遍就會明白了上課不懂的地方,因為你畢竟知道老師這個地方是怎么講的,有聽的基礎(chǔ)。

4、要多練習(xí),學(xué)了C不就是為了自己能寫嗎?怎樣才能寫出好的呢,只有自己多練習(xí)了,尤其是上機(jī)課,不要玩,要利用好,因為這是有老師指導(dǎo)的,有錯了你會很容易問到老師你哪里出錯了,而課后能你只能自己去發(fā)現(xiàn)它,那樣會費好長時間的。自己多寫還能很容易發(fā)現(xiàn)自己的薄弱點,C語言的使用時很靈活的,所以就更要多練,靈活掌握。

總結(jié)一下就是一看二思三聽四練,要反復(fù)反復(fù)再反復(fù)。

就我個人而言,我認(rèn)為最重要的還是看書,書是一切之本,我們不要因為這本書看不懂就去找其他書刊,至少對于C語言我們現(xiàn)在用的書可以說是最經(jīng)典的了。所以你要做的就是要把它變成你的,說老實話,如果你認(rèn)真看書,不用老師你也會精通的。

那看書最重要的是什么?答:讀程序。沒錯,讀程序是學(xué)習(xí)c語言入門最快,也是最好的方法。尤其是我們用的書,基本上每一個知識點后都有例程供大家學(xué)習(xí)。

然后就是自己編程了,最好是和例程類似的或一樣的,自己試圖寫出這段已經(jīng)讀懂的程序,不要以為例程你已經(jīng)讀懂了,你就可以寫出和它一樣的程序,絕對不一定,不相信你就試一試吧,如果寫不出來,也不要著急,回過頭來再繼續(xù)研究例程,想想自己為什么寫不出來,然后再去寫這段程序,反反復(fù)復(fù),直到你手到擒來為止,祝賀你,你快入門了。

最后說一下怎樣才能成為一個高手呢?

寫程序的最高境界其實就是掌握各種解決問題的手段(數(shù)據(jù)結(jié)構(gòu))和解決問題的方法(算法)。舉個例子:你面前有10個人,找出一個叫“張三”的人,你該怎么辦?第一種方法:直接對這10個人問:“誰叫張三”。第2種方法:你挨個去問“你是不是張三?”,直到問到的這個人就是張三。第三種方法:你去挨個問一個人“你認(rèn)不認(rèn)識張三,指給我看”。不要小看這個問題,你說當(dāng)然會選第一種方法,沒錯恭喜你答對了,因為這個方法最快,效率最高,但是在程序設(shè)計中找到解決問題的最優(yōu)方法和你用的手段卻是考驗一個程序員程序設(shè)計水平的重要標(biāo)志,而且是不容易達(dá)到的。

程序要考慮它運行所需的內(nèi)存空間,和運行時間,誰能達(dá)到兩者兼顧誰就是高手。

考試

學(xué)??荚嚾绾螐?fù)習(xí)。

我們學(xué)校講的知識與全國計算機(jī)等級考試與江蘇省高校計算機(jī)考試有和差別以及如何備考。

詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。

推薦詞條