国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院

首頁 > 編程 > C > 正文

為什么要學習C語言

2023-06-05 11:58:36
字體:
供稿:網(wǎng)友

這是一本給非計算機專業(yè)的大學生的C語言的書。“我不是學計算機的,為啥要學C語言?”這個問題每年在中華大地都會被問上幾百萬次。被問的對象可能是老師,也可能是師哥師姐。師哥師姐往往也就是故作明了的表情,復述一遍隱約記得的老師的話。而這些話多半都是比較高瞻遠矚的,例如“將來可能會用到”,“鍛煉編程思維有好處”,“C語言是學編程的基礎(chǔ)”等等。這些話沒有錯,所謂“技不壓身”,多學點兒東西肯定比不學要有好處。但問題是,如果把學C語言的精力用來學學其它與專業(yè)相關(guān)度更高的東西,是不是會更好呢?既然如此,干嘛還學C語言呢?

大學里除了要拿到“畢業(yè)證”和“學位證”以外,還要過“四級”和“二級”,否則可能會被扣發(fā)兩證,或找工作受阻,難以“落戶”等。這里的二級指的是“全國計算機等級考試二級”,是一個面向“程序員”,“考核計算機基礎(chǔ)知識和使用一種高級計算機語言編寫程序以及上機調(diào)試的基本技能”的考試。雖然社會只需要少量的人會編程序,但莫名其妙的是幾乎所有的大學生都想(或被要求)過二級,導致程序設(shè)計課程成為了必修課。

二級考試可選的語言包括C、C++、Java、Delphi、Visual Basic、Visual FoxPro和Access。為什么偏偏要學最古老的C呢?這里的原因復雜多樣,每個學校都有各自的解讀,就不一一列舉了。總之,中國一定是世界上“認識”C語言的人口最多的國家,二級考試功不可沒。

反正既然此課已開,不學也不行,精力已經(jīng)搭上,就還是認真了解一下C語言吧。雖然有些無奈,但好在C語言確實是一個有趣的家伙,而且越了解越覺得有趣。如果不信,請往下看……

游戲、黑客和C語言

1969年的美國貝爾實驗室,是當時科技界的夢工廠,集結(jié)著世界上最富創(chuàng)造力的科學家和工程師,包括數(shù)位諾貝爾獎獲得者,他們一起創(chuàng)造了無數(shù)影響著全人類的發(fā)明。比如數(shù)碼相機的核心——CCD就是那一年在貝爾實驗室誕生的。

這幫家伙的成就貌似高不可攀,但其實也都是凡人,在某些方面和我們也是非常相似的。比如當他們見到一臺強大的計算機時,心里最先想到的也是用它來玩游戲。那個時代,計算機是大型機構(gòu)才能擁有的奢侈品,在這上面玩游戲?qū)嵲诒╅逄煳?。但誰在乎呢,追求快樂是最重要的,所以他們?yōu)榱送纯斓赝嬗螒蚨鴽]少動腦筋。

那時候是沒有商業(yè)游戲的,所以想有游戲玩,首先要發(fā)揮DIY精神,自己編。自己編的游戲被別人喜歡,是當時最有面子的事情。有一個叫Ken Thompson(以下尊稱為ken)的工程師,26歲,游手好閑,看到阿波羅11號載人登月成功,覺得挺酷,自己也想試試,就設(shè)計了一個叫“Space Travel”的游戲。在游戲中,玩家駕駛著宇宙飛船,在虛擬的太陽系里穿梭,欣賞美景的同時,還可以在各個行星、衛(wèi)星表面降落。這個游戲先是在Mutlics系統(tǒng)上編寫,后來又在GECOS系統(tǒng)上重寫。能運行這兩個系統(tǒng)的機器都是笨重的大型機,雖然運算能力出眾,但顯示效果很差,而且機時費非常高,玩一次,公司要支付75美元(當時美國人均月收入大約200美元)。這要是被老板發(fā)現(xiàn)了,可不是鬧著玩的。于是他伙同28歲的同事,Dennis M. Ritchie(以下尊稱為dmr),滿大樓地尋找免費的“游戲機”。功夫不負有心人,還真被他們找到了一臺。

PDP-7小型機,DEC制造,擁有當時最先進的圖形處理能力。彼時的計算機主要用來處理數(shù)據(jù),圖形能力并不太重要,所以PDP-7更多的時候是靜靜地躺著,很少被使用,直到ken和dmr這對骨灰級的玩家發(fā)現(xiàn)了它。

游戲開始了。但是,游戲的運行需要操作系統(tǒng)的支持。PDP-7當時還是“裸機”,沒有能在其上運行的操作系統(tǒng)。偉大的DIY精神再次發(fā)揮作用,他倆挽起袖子開始為PDP-7編寫操作系統(tǒng),并給這個系統(tǒng)起了一個名字——Unix。直到今天,Unix仍然是最被信任的操作系統(tǒng),它既支撐著軍隊、政府、電力、電信和銀行等大型機構(gòu)的關(guān)鍵業(yè)務(wù),也是蘋果Mac系列電腦的動力之源,甚至iPhone、iPod Touch的魅力也部分拜其所賜。

Unix起初是用匯編語言編寫的,那是一種更接近機器而不是人的語言。計算機能直接讀懂的語言叫機器語言,它所有的語句都是由“0”和“1”兩個數(shù)字構(gòu)成的,根本就不是給人看的。當最后一個機器語言程序員瘋掉以后,人們終于開始琢磨怎么讓計算機認識人語?;舅悸肥亲鲆粋€翻譯程序,直接把人語翻譯成機器語言。這種翻譯程序被命名為“編譯器”。但是直接理解人語太難了,直到現(xiàn)在還沒能實現(xiàn),所以就折中一下,設(shè)計一種盡量接近人語,還能被精確翻譯為機器語言的語言。這種語言就是我們常說的編程語言,學編程的過程,其實就是學用編程語言說話給編譯器聽的過程。第一種編程語言肯定是最接近機器而遠離人類的,它就是匯編語言。雖然看上去有幾分像人語,比如加法叫“ADD”,減法叫“SUB”,但它的語法完全是機器的,每一行語句都和一條機器指令嚴格對應,這個特點使得針對一種計算機編寫的匯編程序不能在另一種計算機上使用,因為這兩種計算機的機器語言是不同的。用專業(yè)術(shù)語來說,匯編語言缺少“可移植性”。

Unix的優(yōu)雅加上Space Travel的吸引力,使很多人希望他們的計算機上也能安裝Unix,玩玩Space Travel。于是ken和dmr決定改用高級語言編寫Unix,這樣它就可以在更多類型的機器上運行。
高級語言是除了機器語言和匯編語言以外幾乎所有編程語言的統(tǒng)稱。它的特點是更接近人語,而與機器語言基本沒有瓜葛。不同的高級語言編譯器可以把同樣的代碼翻譯成適應不同機器的指令,因而高級語言大多具有很好的可移植性。

故事講到這里,該這本書的主角——C語言,登場了。決定使用高級語言后,在語言的選擇上,ken和dmr遇到了麻煩。當時可供選擇的高級語言有很多,包括直到現(xiàn)在還在被使用的BASIC和Fortran等,但都沒被看上眼。DIY基因再次發(fā)揮作用,他倆決定自己設(shè)計一種好用的高級語言,用來重寫Unix。那一年是1972年,ken繼續(xù)完善Unix,dmr以ken早年設(shè)計的B語言為基礎(chǔ),開始設(shè)計新語言,兩人一起開發(fā)編譯器。這個新語言被隨隨便便地命名為——C語言。

1983年,因為Unix和C語言的巨大成功,ken和dmr共同獲得了計算機界的最高獎——圖靈獎。玩游戲玩到這等境界,古今也就只有這兩人吧。

Unix和C,得中其一,便能富可敵國。然而,他倆從一開始就沒有去想申請專利、商標、軟件著作權(quán)等法律保護,而是把所有的一切,包括源代碼,都隨心所欲地到處散播。對他們來說,自己寫的程序有人使用,是最大的快樂,也是最大的財富。也正因為如此,很多機構(gòu)和個人都能自如地為Unix和C做貢獻,極大地促進了它們的發(fā)展。

從上面的故事,我們可以發(fā)現(xiàn)他倆的很多可愛之處:做事情以興趣為出發(fā)點,并不在乎未來會怎樣;極富鉆研精神,信奉“自己動手,豐衣足食”;樂于分享,不計回報。他們的這些特點正是正宗“黑客精神”的集中體現(xiàn)。他倆也被奉為黑客圈子里的英雄,甚至是開山鼻祖,大家都尊稱他倆為ken和dmr(必須小寫)。幾十年過去了,黑客圈子里再沒有第二個人敢叫“ken”,這個英語圈里司空見慣的名字。

Unix和C至今仍是年輕黑客被圈子接受前必須苦練的三大技藝之一和之二(之三是隨便一種腳本語言)。由黑客設(shè)計,被黑客推崇,所以C語言自身也處處閃耀著黑客精神的光芒。這種光芒使它能夠永葆青春。

C語言,不老的傳說

最受歡迎的歌一定是被聽得最多的,最受歡迎的語言一定是被用得最多的。C語言現(xiàn)在用得多嗎?在業(yè)界,一般的答案是:

如果一件事可以用X語言做,就一定不要用C語言做。

這里的X可以代指任何語言。天啊,這好象是在說“如果可以聽X的歌,就一定不要聽周杰倫的歌”。這是在評價周杰倫還是曾軼可?。?/p>

哪個編程語言是最受歡迎的?每個人都會有自己的主觀看法。還是用客觀的數(shù)據(jù)說話吧。

TIOBE在2010年8月公布的程序設(shè)計語言受歡迎程度的趨勢圖(最新的統(tǒng)計圖請訪問上面網(wǎng)址)??梢钥吹?,C語言始終處于前兩位,而且最近大有再次奪回第一位的勢頭。
能不用就不用,還如此受歡迎,這就有些讓人費解了。dmr曾經(jīng)說過一句話:“C詭異離奇,缺陷重重,并獲得巨大成功。”因為詭異且有缺陷,所以會被盡量避免使用,取而代之的是彌補了這些缺陷的語言;因為確實獲得了巨大成功,所以它至今仍大受歡迎。一個成功的例證是,圖x-x中列舉的當今最受歡迎的10種語言,除去C語言,剩下的9種中,有7種都直接使用、間接引用或部分借鑒了C語言的語法(比如,它們語句的結(jié)尾都要有一個“;”),只有Visual Basic和Python的語法里找不到C的影子。憑這等世界第一的影響力,受到歡迎也就在情理之中了,盡管它是那么的讓人愛恨交織。

C語言的愛與恨

C語言設(shè)計原則的第一條是:“信任程序員。”對程序設(shè)計語言了解不多的人,不會覺得這句話怎樣。但對真正的程序員來說,憑這句話就足以對C語言愛一輩子,愛得死去活來。

C語言一夫當?shù)赖哪甏嬎銠C相當昂貴,但速度比不上現(xiàn)今的手機,內(nèi)存都是以KB為單位計算。所以,那時候?qū)Τ绦蜃罨镜囊缶褪切?。C語言完全滿足人們對效率的苛求,精心設(shè)計的代碼可以極大地節(jié)約計算機資源,又不像匯編語言那樣難用,所以受到程序員的歡迎。后來,硬件越來越便宜,性能越來越高,程序的運行效率已經(jīng)不是追求的主要目標,安全性、穩(wěn)定性和是否易于維護等變得重要起來,C語言的弊端便顯現(xiàn)了。

C語言給程序員最大的發(fā)揮空間,讓他們自由地在代碼中揮灑激情和創(chuàng)意,從不去質(zhì)疑這些代碼是否會帶來危害,因為它“信任程序員”,相信程序員的決定一定是正確的,即便有錯誤,也一定能自己修正。無限制的自由,在某些人的手中是創(chuàng)造力的源泉,而在另外一些人手中,卻能成為混亂的根源。隨著軟件系統(tǒng)規(guī)模的膨脹,需要的程序員越來越多,綜合水準越來越低,出現(xiàn)錯誤的概率越來越大,而每一個低級的錯誤都可能會引發(fā)大災難。很多人把這種亂象產(chǎn)生的原因歸罪于C,開始懷疑它,甚至恨它,卻從不反省自己糟糕的編碼能力。于是有人說,給這匹野馬加上韁繩吧,別讓它再恣意狂奔。但是C拒絕了鎖鏈,于是很多語言穿上C的外衣,自己掛上鎖鏈,站了出來。因為它們看上去很像C,所以大家很容易接受;因為它們掛著鎖鏈,所以它們不再信任程序員,而是指手畫腳地告訴程序員,這件事情該怎么做,那件事情不能怎么做。如果程序員不聽它們的,它們就拒絕工作。這樣亂象解除了,開發(fā)速度加快了,多人合作容易了,錯誤減少了,對程序員能力的需求降低了,因而工資也降低了,老板開心了,業(yè)界繁榮了。平心而論,“一件事情可以用X語言做,就一定不要用C語言做”確實是一個很好的策略,盡管程序員會失去一些自由,但在合法的范圍內(nèi)仍有一定的空間可以發(fā)揮創(chuàng)造力,而且這些創(chuàng)造力很少創(chuàng)造出負面效果,綜合起來能讓老板、程序員、用戶皆大歡喜。但程序員,尤其是受人尊敬的程序員,他們的血液中天生就充滿著不安分,向往自由的黑客生活,所以他們會一邊撫摸著身上的傷口,一邊懷念那個魯莽卻無往不利的老將軍,懷念在他手下無拘無束的日子,懷念被他激發(fā)出的層層潛能。這個老將軍是程序員心中永遠的戰(zhàn)神。

C語言教給我們的事

現(xiàn)在,還需要使用C語言的地方大概只限于下面三個領(lǐng)域:
C語言仍然是編寫操作系統(tǒng)的不二之選。它為操作系統(tǒng)而生,能更直接地與計算機底層打交道,精巧、靈活、高效。最重要的,操作系統(tǒng)的開發(fā)者都是最頂尖的程序員,他們有充足的能力和經(jīng)驗駕馭C語言。
在對程序的運行效率有苛求的地方,比如嵌入式領(lǐng)域,C語言也是首選。不過,嵌入式系統(tǒng)現(xiàn)在的硬件性能也已經(jīng)足夠強大,而功能要求越來越高,所以C語言的生存空間正在縮小。
在需要繼承或維護已有的C代碼的地方,還需要C語言。有很多影響深遠的軟件和程序庫最早都是用C開發(fā)的,所以還要繼續(xù)應用C。但是,它們中的很多已經(jīng)開始使用其它語言重寫,那些C的代碼早晚有一天會被拋棄。
應用面如此窄,學它能有多大用處呢?


如果單純從“用不上”這個角度得出“學C語言沒有用”的結(jié)論,是有失公允的。即便對計算機及相關(guān)專業(yè)而言,C語言的“用處”也不算大。學習C語言的意義在于,它為我們打開一扇了解計算機的窗口。在幾乎做任何事情都離不開計算機的今天,越了解計算機也就意味著越能利用好計算機。

美國卡內(nèi)基梅隆大學計算機科學系前系主任周以真教授在2006年發(fā)表了一篇著名的文章——《計算思維》。文中談到“計算機科學的教授應當為大學新生開一門稱為‘怎么像計算機科學家一樣思維’的課,面向非專業(yè)的,而不僅僅是計算機科學專業(yè)的學生”,這是因為“機器學習已經(jīng)改變了統(tǒng)計學。……計算生物學正在改變著生物學家的思考方式。類似地, 算博弈理論正改變著經(jīng)濟學家的思考方式,納米計算改變著化學家的思考方式,量子計算改變著物理學家的思考方式”,所以“計算思維代表著一種普遍的認識和一類普適的技能,每一個人,不僅僅是計算機科學家,都應熱心于它的學習和運用”。

不過遺憾的是,我們現(xiàn)在還很少有學校開設(shè)這樣的課程。所以程序設(shè)計課在某種程度上肩負了傳播計算思維的責任。這也是對于不需要使用C語言的學生而言,最大意義之所在。

總之,不管你該不該學C,適不適合學C,既然這門課已經(jīng)開了,而且有不錯的老師帶領(lǐng),那么就好好抓住這個機會吧,別把時間浪費了。也許一個學期之后,你會發(fā)現(xiàn)自己在程序設(shè)計方面的天賦,進而在這方面努力,最后成為一名受人尊敬的黑客呢。

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
国产激情自拍_国产9色视频_丁香花在线电影小说观看 _久久久久国产精品嫩草影院
国产一级又黄| 免费三级毛片| 国产三级视频在线播放线观看| 在线观看国产福利视频| 国产福利片在线| 国产欧美在线观看视频| 国产福利在线视频| 精品一区二区三区免费站| 在线天堂中文| 免费影视观看网站入口| 国产小视频免费在线观看| 国产网友自拍电影在线| 国产成人va亚洲电影| 中文字幕国产视频| 国产三级香港三韩国三级| 国产娇喘精品一区二区三区图片| 国产网红在线| 99久久99久久免费精品小说| 四虎成人免费| 国产麻豆精品高清在线播放| 91蜜桃在线视频| 欧美视频免费一区二区三区| 黄色片免费在线| 777电影在线观看| 九九在线视频| 99在线视频影院| 国产精品视频二区三区| 在线观看中文字幕| 国产精品亚洲第五区在线| 精品久久av| 中文字幕网站视频在线| 亚洲一道本在线| 国产高清视频免费最新在线| 高清欧美精品xxxxx在线看| 伊人福利在线| 国产白浆在线| 国产精品美女一区二区视频| 国产在线高清理伦片a| 日本在线观看| 超碰97在线免费观看| 亚洲综合激情六月婷婷在线观看| 国产日韩欧美一区二区三区视频| 黄网站app在线观看下载视频大全官网| 91高清国产| 国产精品黄页网站在线播放免费| 国产69久久| 牛牛热在线视频| 久久久久久久久亚洲精品| av在线1区2区| 精品福利视频导航大全| 91蜜桃在线视频| 国产成+人+亚洲+欧美+综合| 2021天堂中文幕一二区在线观| 中文字幕国产视频| 最新中文字幕在线视频| 久久香蕉一区| 国产小视频在线高清播放| 天堂资源最新版在线视频观看免费网| 青青草原国产在线| 免费看ww视频网站入口| 另类高清dbsm日本tvav| 成在在线免费视频| 国产超级va在线视频| www.91在线播放| 国产一级黄色大片| 中文字幕2019第三页| 黄色av免费看| 国产成人综合亚洲欧美在| 亚洲精品自拍区在线观看| 九九热在线视频免费观看| 99热在线免费播放| 国产精品人人爱一区二区白浆| 在线天堂av| 国产一级片网站| 精品国产免费第一区二区| 日本高清中文字幕| 国产精品被窝福利一区| 日本视频在线观看一区二区三区| 九九热在线免费视频| 99久久免费精品国产免费| 午夜视频在线| 久久久久久国产视频| 永久av在线| 国产精品9区| 国产裸舞福利在线视频合集| 亚洲激情丁香| 在线免费国产| 国产xxx在线| √天堂资源地址在线官网| 国产9色视频| 狠狠综合久久久综合| baoyu777.永久免费视频| 精品一区二区三区高清免费不卡 | 国产激情自拍| 国产麻豆精品入口在线观看| а√天堂8资源在线官网| 中文字幕av网| 亚洲欧美日韩成人网| 99re热视频在线| 在线视频中文字幕| 精品av中文字幕在线毛片| 国产精品视频一区二区图片| 九九热在线观看| 久久国产热视频| 国产在线看片| 国产农村av| 狠狠狠综合7777久夜色撩人| 成av人免费青青久| 黄色网页网址在线免费| 91超碰国产在线| 国产超碰在线| 日本视频二区| 国产麻豆一级片| 国产叼嘿网站免费观看不用充会员| 久久av少妇| 国产三级自拍| av天天在线| 国产女王在线**视频| 国产精品9区| 一色桃子av在线| 久久久久久91精品色婷婷| 国产嫩草在线视频| 国产黄a三级三级三级av在线看 | 欧美人成在线观看网站高清| 黄网址在线永久免费观看| 天天操人人爽| 樱花草在线观看www| 久久国产情侣| 国产福利三区| 久久久久久久久久久久久91| 国产高清视频免费最新在线| www中文字幕在线观看| 中文字幕在线看精品乱码| 国产福利微拍精品一区二区| 免费高清视频日韩| 国产91久久久久蜜臀青青天草二| 久久久久久久久久久久久91| 国产黄在线看| 国产在线高清| 亚洲日本伊人| 国产区高清在线| 国产偷倩在线播放| www在线视频| 国产成+人+亚洲+欧美+综合| 久久精品免视着国产成人| 91资源在线观看| 国产精品剧情一区二区在线观看| 波多野结衣久久高清免费| 精品网站www| 国产青青草在线| 国产一卡二卡3卡4卡四卡在线| 欧洲亚洲精品视频| 99免费视频| 精品国产福利一区二区在线| 国产视频福利| 国产日韩网站| 国产成人综合亚洲欧美在| 中文字幕人成高视频| 日本电影全部在线观看网站视频| √8天堂资源地址中文在线| 99视频资源网| 国产一区二区三区不卡在线| 国产男女猛烈无遮挡免费视频| 伊人中文字幕在线| av福利在线播放| 亚洲男人的天堂成人| av免费网站在线观看| 亚洲国产aⅴ精品| 日韩在线天堂| 成人福利视频导航| 天天操天天射天天插| 国产免费麻豆视频| 中文字幕日本在线| 国产色在线播放| 精品伦理一区二区| 香蕉视频网站在线播放| 欧美黑人乱大交| 国产麻豆一级片| 精品国产一区二区三区久久久狼牙 | 牛牛热在线视频| 国产乱xxⅹxx国语对白| 青青艹在线视频| 国产麻豆综合视频在线观看| 国产亚洲精品久久久久久青梅 | 国产精品自产拍在线网站| 久久精品国产麻豆| 国产网站免费看| v天堂福利视频在线观看| 欧美亚洲系列| 国产网友自拍电影在线| 亚洲一本大道| 国产精品毛片一区二区三区四区| www.狠狠插| av二区三区| 国产小视频免费在线网址| 日本一本久久| 精品美女在线观看视频在线观看| 欧美xxxx黑人又粗又长| 国产青青草在线| 高清欧美精品xxxxx在线看|