最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會員登陸 & 注冊

想學(xué)C++之前,一定要學(xué)C語言嗎?初學(xué)者都已經(jīng)懵了!

2021-06-19 22:17 作者:C語言編程__Plus  | 我要投稿


每次遇到這種問題,看起來很簡單,但是打字一時半會還真說不清,想想今天周末了,寫一篇文章來統(tǒng)一聊聊吧,如果小伙伴們有不同看法,也歡迎批評指正,評論區(qū)見。

作者:CodeSheep

鏈接:https://www.jianshu.com/p/b77758d3398b

來源:簡書

著作權(quán)歸作者所有。商業(yè)轉(zhuǎn)載請聯(lián)系作者獲得授權(quán),非商業(yè)轉(zhuǎn)載請注明出處。

C語言和C++到底是什么關(guān)系?

首先C++和C語言本來就是兩種不同的編程語言,但C++確實(shí)是對C語言的擴(kuò)充和延伸,并且對C語言提供后向兼容的能力。對于有些人說的C++完全就包含了C語言的說法還是有點(diǎn)別扭的。

C++一開始被本賈尼·斯特勞斯特盧普(Bjarne Stroustrup)發(fā)明時,起初被稱為“C with Classes”,即「帶類的C」。很明顯它是在C語言的基礎(chǔ)上擴(kuò)充了類class等面向?qū)ο蟮奶匦院蜋C(jī)制。但是后來經(jīng)過一步步修訂和很多次演變(如下圖所示),最終才形成了現(xiàn)如今這個支持一系列重大特性的龐大編程語言。


就像經(jīng)典書籍《Effective C++》一開頭就說的,現(xiàn)如今我們提到C++,都應(yīng)該視其為一個龐大的「語言聯(lián)邦」,最起碼包含如下幾個重要的組成部分:

面向過程編程

面向?qū)ο缶幊?/strong>

泛型編程

元編程

函數(shù)式編程

STL標(biāo)準(zhǔn)庫

這其中的第一部分「面向過程編程」,正是C++提供的向后兼容C語言的部分,所以你能看到市面上在售的大部分講C++編程的書,一開始前幾個章節(jié)基本都是在講「面向過程編程」的內(nèi)容,包括但不限于:數(shù)據(jù)類型、變量、運(yùn)算符、表達(dá)式、語句、判斷、循環(huán)、函數(shù)、指針等等這些內(nèi)容。

不學(xué)C語言能直接學(xué)C++嗎?

還是像前面所說,C++編程語言的第一大重要組成部分就是「面向過程編程」,而這正是C語言老大哥的領(lǐng)域。即使沒有學(xué)過C語言,一上來就直接學(xué)習(xí)C++的小伙伴,應(yīng)該也難逃『面向過程』這一部分的內(nèi)容。因?yàn)槭忻嫔显谑鄣拇蟛糠种vC++編程的書,開始的章節(jié)都在講「面向過程編程」的內(nèi)容。

從理論上來說,學(xué)C++前并不一定非得學(xué)C語言,但是有C語言底子再去學(xué)C++往往更具優(yōu)勢,最起碼「面向過程編程」這一部分內(nèi)容能夠輕車熟路。

但是遺憾的是,即使是《C++ Primer》這種700多頁厚的權(quán)威C++書籍,開頭也只有很少一部分在講「面向過程編程」,所以對于面向過程這一部分的講述是肯定沒有專門講C語言的書籍剖析得細(xì)致和全面的,不然也不會有這種重點(diǎn)側(cè)重于指針相關(guān)的《C和指針》等這類書籍的出現(xiàn)了。

所以個人建議是在學(xué)C++之前,C語言的基礎(chǔ)還是盡量要夯實(shí),肯定是有幫助的。

C學(xué)得好的,學(xué)習(xí)C++是否更具優(yōu)勢?

是的。

最起碼學(xué)C++時,里面的「面向過程」這一部分內(nèi)容可以說輕車熟路了。

C++能替代C語言嗎?

既然C++這么強(qiáng)大,包含這么多模塊和范式,而且也幾乎包含了C語言面向過程這一部分的內(nèi)容,那為啥還要學(xué)C語言呢?都直接學(xué)習(xí)C++它不香嘛?

是的,C++很強(qiáng)大沒錯,但那些強(qiáng)大的范式和機(jī)制本身帶來的包袱就不輕,也確實(shí)給學(xué)習(xí)者造成了不小的負(fù)擔(dān),甚至勸退了很多人。

而反觀C語言,C語言本身就是一個把能力、性能、效率學(xué)習(xí)成本權(quán)衡得非常極致的一種編程語言,以至于大學(xué)階段必開的程序設(shè)計課程里基本都有C語言的身影。

而且C語言的應(yīng)用領(lǐng)域極度廣泛,上到操作系統(tǒng)底層的原生接口,下到普通的應(yīng)用層開發(fā),C語言都有著不小的功勞。以至于這么多年來,在Tiobe編程語言排行榜里,C語言都是居高位不下。


而且2020開年C語言重回巔峰王座,一舉奪得「2019年度編程語言」。雖然這只是一個看起來很無聊的排名,但多多少少能說明一些事情。


所以無論是過去,現(xiàn)在,甚至是未來,近50歲的C語言老將軍依然永不為奴。


只有C++這種面向?qū)ο蟮恼Z言才適合大型項(xiàng)目嗎?

C++的出現(xiàn)的確是為了更方便地開發(fā)大型應(yīng)用程序,畢竟面向?qū)ο缶幊汤锏暮芏嘀匾枷牒蜋C(jī)制都對大型項(xiàng)目和復(fù)雜系統(tǒng)所要求的項(xiàng)目工程化、代碼復(fù)用性/擴(kuò)展性/可維護(hù)性等提供了強(qiáng)大的支撐。

但是擺在眼前的事實(shí)告訴我們,即便是C語言,也照樣可以構(gòu)建出極其復(fù)雜的系統(tǒng)和軟件。上到Linux這種曠世偉大的操作系統(tǒng)內(nèi)核,小到被各個公司重度依賴的Redis、Nginx等開源軟件或框架,都是C語言的代表作品。

所以有時候我們不得不承認(rèn)的是,大家所說的抽象能力更多的是看寫這個程序的人,而并非編程語言本身。

小 結(jié)

好啦,扯得有點(diǎn)多了,總結(jié)一下就是:

C語言和C++是兩個不同的編程語言,只不過內(nèi)容上有一定的重疊;

C語言是一門很強(qiáng)大的編程語言,我覺得有機(jī)會還是要學(xué)一下;

一般來說,有了C語言的基礎(chǔ),上手C++也會更快;

C++和C各有各的選用考慮和應(yīng)用場景,并沒有誰更好一說,學(xué)不學(xué)看自己的興趣和自身技術(shù)發(fā)展的考量

書籍推薦

最后聊一聊學(xué)習(xí)C語言和C++的書籍吧。

個人覺得如果想系統(tǒng)學(xué)習(xí)這兩門語言,最好還是得看一下經(jīng)典的書籍。

關(guān)于C語言學(xué)習(xí)書籍,最最權(quán)威的當(dāng)然是C語言的發(fā)明者Dennis M. Ritchie所著的《The C Programming Language》(它也有中文版的),除此之外《C Primer Plus》也很系統(tǒng)全面。

關(guān)于C++的學(xué)習(xí)書籍,最權(quán)威的當(dāng)屬C++的發(fā)明者Bjarne Stroustrup大佬所著的《The C++ Programming Language》,但是很明顯這本書不適合初學(xué)者,更加適合的還得是《C++ Primer》,也很系統(tǒng)全面。至于再深入可以繼續(xù)閱讀諸如《Effective C++》、《STL源碼剖析》、《深度探索C++對象模型》等書籍。

這些書讀完,成神之路便可由此開啟。

另外,對現(xiàn)在我們的大多數(shù)朋友來說還是學(xué)編程技術(shù)最重要!栽一棵樹最好的時間是十年前,其次是現(xiàn)在。對于準(zhǔn)備學(xué)習(xí)編程的小伙伴,如果你想更好的提升你的編程核心能力(內(nèi)功)不妨從現(xiàn)在開始!

微信公眾號:C語言編程學(xué)習(xí)基地

整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)

歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長比自己琢磨更快哦!




想學(xué)C++之前,一定要學(xué)C語言嗎?初學(xué)者都已經(jīng)懵了!的評論 (共 條)

分享到微博請遵守國家法律
高安市| 亳州市| 石家庄市| 万荣县| 利津县| 沙田区| 罗定市| 莆田市| 刚察县| 衡阳县| 洪洞县| 沭阳县| 额尔古纳市| 大石桥市| 库伦旗| 来安县| 蕲春县| 屏东县| 通辽市| 七台河市| 乡宁县| 永昌县| 宜兰市| 辛集市| 京山县| 海门市| 沧源| 堆龙德庆县| 英超| 天柱县| 石嘴山市| 曲靖市| 中方县| 阿合奇县| 石林| 读书| 诸城市| 垣曲县| 和硕县| 河间市| 许昌市|