1. 程式人生 > >C語言程式設計學習總結

C語言程式設計學習總結

最近忙於學習C語言程式設計,考計二C。都搞得我頭暈眼花,天天都是刷題。馬上就要考計二C了。我想總結一下我對C語言的理解。
C不同於java的最大區別在於C是面向過程,而java是面向物件。剛開始我也搞不清到底區別在哪裡?之後我就似乎有點明白了,C語言在程式設計過程中沒有如同java一般有類和物件的存在。在java中我要實現某一個功能我就必須宣告一個類(當然也可以在主類裡面實現,這裡是指不在主類裡想要實現某一個功能),比如person類,我要使用這個類就必須new出一個物件來使用其中的成員變數和成員方法。而在C中就沒有這麼多,C中只需要存在主main函式與其他函式就行了,比如我宣告一個int fun(int m),此函式是在標頭檔案裡面,記住一個C程式中只允許存在一個main函式,不然在用vc++6.0編譯過程中會報錯。這點跟java是相同的,畢竟程式的入口必須只有一個,不然多個入口的話,會使軟體不知道該進行那個,會產生矛盾。這個在標頭檔案裡的fun函式,我只需要在main函式存在的原始檔的中,進行巨集定義#,我就可以直接使用這個方法了。的確看起來真的很方便。 這個巨集定義#讓我想到了,html中外部引用css和js。其實原理是一樣的。
C的語法和程式設計風格其實與java是沒有本質的區別,比如基本的迴圈結構,選擇結構,順序結構都可以滿足基本需求了。但是讓我感覺有點麻煩的是,在C語言中我想要使用一個變數,我就必須先宣告這個變數我才能使用這個變數。比如for迴圈中,java是這樣定義的for(int i=0;i<10;i++),而C中我就必須先宣告int i,而不能在條件表示式裡面宣告。還有我遇到的一次,C中居然不能刪除一個int型別陣列中指定的元素,比如int a[3]={1,2,3};我想刪除元素2,C居然做不到。它只能怎麼做呢,把元素3賦值給元素2,即a[1]=a[2](C與java一樣,陣列下標從0開始),然後把陣列大小減一。真的讓我罵了一句C,你真蠢。而java中是有現成的方法可以刪除指定元素的,很方便。
C中,讓我錯題錯的最多的莫過於指標。這是C中獨有的,java沒有。想要把C學好,就要看你能不能把指標運用的十分熟練。我想我還差很遠。
學了將近1個月的C,讓我覺得C最好的地方,在於它的自由性。真的很自由,沒有java中那麼多約束。
有些人認為學了java再去學C,是一件很容易的事情。
我只能告訴你,路還長,不要那麼快停下腳步。
最後我想把指標比喻成暗戀,不管我如何改變自己(地址),也無法波及到你的想法(數值)。