0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

大牛分享丨C語(yǔ)言學(xué)習(xí)攻略

信盈達(dá) ? 2021-12-31 15:32 ? 次閱讀
今天下午,牛叔應(yīng)桂林理工大學(xué)領(lǐng)導(dǎo)邀請(qǐng),給自動(dòng)化和機(jī)械電子類(lèi)專(zhuān)業(yè)大一、大二學(xué)生,做了一場(chǎng)嵌入式+人工智能技術(shù)講座。講座結(jié)束,一位學(xué)生留言說(shuō),牛老師,我叫李**,剛上大學(xué),來(lái)學(xué)??煲粋€(gè)月了,感覺(jué)大學(xué)和高中完全不同,突然沒(méi)人管了,也沒(méi)高考?jí)毫α耍悬c(diǎn)迷茫,無(wú)所適從。聽(tīng)了你的講座,豁然開(kāi)朗,知道自動(dòng)化專(zhuān)業(yè)要學(xué)哪些專(zhuān)業(yè)知識(shí)了,知道大學(xué)應(yīng)該怎么度過(guò)了。你講學(xué)技術(shù),每天具體怎么做的三點(diǎn)建議:1、每天抽2個(gè)小時(shí),找一個(gè)沒(méi)人的地方或一個(gè)人都不認(rèn)識(shí)的地方(例如自動(dòng)化專(zhuān)業(yè)的學(xué)生,到圖書(shū)館或其它專(zhuān)業(yè)自習(xí)室學(xué)習(xí));

2、不要帶手機(jī)、如果帶電腦,建議將電腦變成學(xué)習(xí)機(jī),將電腦里面的小說(shuō)、視頻、娛樂(lè)相關(guān)全部刪除或存入移動(dòng)硬盤(pán);

3、每天只學(xué)習(xí)和掌握一個(gè)關(guān)鍵知識(shí)點(diǎn)。

如果學(xué)習(xí)C語(yǔ)言,每天只掌握一個(gè)C知識(shí)點(diǎn),例如for語(yǔ)句的用法、while語(yǔ)句的用法、函數(shù)指針的用法或指針函數(shù)的用法等。

如果學(xué)習(xí)電路,每天只掌握一個(gè)電子元器件或一個(gè)簡(jiǎn)單電路的用法,例如電阻、電容或電感的用法等。


學(xué)技術(shù)每天一定要有能寫(xiě)出來(lái)的進(jìn)步。以上建議非常實(shí)用、接地氣和可執(zhí)行。聽(tīng)了熱血沸騰,想立馬行動(dòng)。決定大一上學(xué)期先把C語(yǔ)言搞定,能針對(duì)學(xué)習(xí)C語(yǔ)言,給一些具體建議么,謝謝牛老師,哈。

以下內(nèi)容,只代表個(gè)人觀點(diǎn),不一定對(duì),僅供參考,隨便看看。

d9e4fd48-69c1-11ec-8d32-dac502259ad0.gif

為啥要學(xué)習(xí)C/C++語(yǔ)言

JAVA語(yǔ)言曾長(zhǎng)期霸占編程語(yǔ)言金牌榜首。近些年,各種新編程語(yǔ)言層出不窮,一些熱門(mén)語(yǔ)言,例如go、python等語(yǔ)言迅速火起來(lái),使用者越來(lái)越多。

C/C++、JAVA、PYTHON是當(dāng)前最熱門(mén),也是最常用的三大編程語(yǔ)言。

C/C++語(yǔ)言很多人可能認(rèn)為,已經(jīng)出現(xiàn)很多年了,已經(jīng)過(guò)時(shí)了,實(shí)際上并不是這樣的,特別是,自2019年以來(lái)C/C++語(yǔ)言曾經(jīng)超越JAVA成為全球編程者用的最多的語(yǔ)言。

牛叔認(rèn)為,有以下六點(diǎn)原因:

1、嵌入式設(shè)備的大規(guī)模應(yīng)用

當(dāng)今時(shí)代,嵌入式系統(tǒng),嵌入式相關(guān)設(shè)備的大規(guī)模應(yīng)用,而C語(yǔ)言是嵌入式相關(guān)產(chǎn)品開(kāi)發(fā),用的最多的一種語(yǔ)言。

2、執(zhí)行效率高

C語(yǔ)言是面向過(guò)程的語(yǔ)言,Java是面向?qū)ο?、編譯型語(yǔ)言,Python是解釋型語(yǔ)言。

Java的執(zhí)行效率比Python高,因此大企業(yè)里面更多的選擇Java,尤其是大型網(wǎng)站。但C語(yǔ)言比JAVA的執(zhí)行效率更高。

越底層的語(yǔ)言開(kāi)發(fā)越發(fā)雜,但是執(zhí)行效率越高。

例如:完成同一個(gè)任務(wù)(功能),C要寫(xiě)1000行代碼,Java只需寫(xiě)100行,而Python可能只要20行代碼;但執(zhí)行效率方面:如果C運(yùn)行需要1秒鐘,Java程序可能需要2秒,而Python可能就需要10秒鐘。

隨著生活節(jié)奏越來(lái)越快,人們對(duì)電子產(chǎn)品的響應(yīng)速度要求越來(lái)越苛刻。同等情況下,電子產(chǎn)品用C編程實(shí)現(xiàn),相同功能下,可大幅度提高產(chǎn)品代碼效率。

3、C入門(mén)相對(duì)容易、開(kāi)發(fā)難度較低

C語(yǔ)言相對(duì)內(nèi)容比較少,簡(jiǎn)單,易學(xué)。

例如C語(yǔ)言只有9條基本語(yǔ)句和32個(gè)關(guān)鍵字,并且常用的語(yǔ)句一般只有6條,常用的關(guān)鍵字也只有18個(gè)左右。具體詳見(jiàn):公眾號(hào)@牛叔經(jīng)濟(jì)學(xué),后期相關(guān)技術(shù)類(lèi)文章。

JAVA語(yǔ)言雖然入門(mén)也相對(duì)比較簡(jiǎn)單,但想搞精通比較困難。一般使用Java開(kāi)發(fā)項(xiàng)目,都會(huì)有一個(gè)比較大的團(tuán)隊(duì),java開(kāi)發(fā)比較注重團(tuán)隊(duì)協(xié)作。但C語(yǔ)言入門(mén)更容易,開(kāi)發(fā)難度也很低,大多產(chǎn)品完全一個(gè)人或幾個(gè)人就可以搞定。

4、C/C++語(yǔ)言應(yīng)用領(lǐng)域非常廣泛

4.1 在MCU的裸機(jī)編程中,C語(yǔ)言是用的最多的一種語(yǔ)言。例如C51單片機(jī)ARM的CORTEX-M0/3/4/7等絕大多數(shù)情況下都是用C語(yǔ)言進(jìn)行編程和產(chǎn)品開(kāi)發(fā)。

4.2 界面開(kāi)發(fā):

1QT

2)圖形處理openGL

3openCV等

4.3 操作系統(tǒng)FREERTOS操作系統(tǒng)和LINUX操作系統(tǒng)的內(nèi)核是用C語(yǔ)言編寫(xiě)的。

4.4 網(wǎng)絡(luò)編程:協(xié)議編程、SOCKET通信編程

4.5 數(shù)據(jù)庫(kù)編程

4.6 多線程開(kāi)發(fā)

4.7游戲:C/C++語(yǔ)法,學(xué)習(xí)游戲引擎,cocos2d,手游,U3D UE4等

4.8 服務(wù)器編程

4.9 WINDOWS核心編程:WIN32 MFC等均是由C語(yǔ)言編寫(xiě)的。

5、技術(shù)慣性

C語(yǔ)言誕生至今,已接近50年。

C編程語(yǔ)言,一出現(xiàn)就以其簡(jiǎn)單,明了,功能豐富、靈活方便、應(yīng)用面廣等特點(diǎn)迅速在全世界普及。

幾十年來(lái),C語(yǔ)言的程序員越來(lái)越多,已有數(shù)量龐大的成熟開(kāi)發(fā)者,很多優(yōu)質(zhì)的項(xiàng)目、操作系統(tǒng)、系統(tǒng)軟件是用C編寫(xiě)的,這已成為人類(lèi)文明,人類(lèi)資產(chǎn)的一部分。

另外,很多程序員用C編程已很多年,已經(jīng)非常熟悉了,能用C語(yǔ)言可以輕松開(kāi)發(fā)產(chǎn)品和賺錢(qián),何必再辛苦去學(xué)一個(gè)新的編程語(yǔ)言呢?

除非新的語(yǔ)言更容易入門(mén)、更容易使用,且能兼容C語(yǔ)言,否則技術(shù)慣性,人的惰性原因,很難被替代。

6、C語(yǔ)言完全開(kāi)源、免費(fèi)

C語(yǔ)言是完全開(kāi)源、開(kāi)放、免費(fèi)的。

沒(méi)有任何限制,人人都可以使用,又不用付費(fèi),且沒(méi)有后門(mén)、隱患,為啥不用呢?

走編程之路,建議優(yōu)先學(xué)C語(yǔ)言。

da10f498-69c1-11ec-8d32-dac502259ad0.gif如何學(xué)習(xí)C語(yǔ)言

C語(yǔ)言想學(xué)好并靈活應(yīng)用,需要以下幾步:

第一步:選合適的教材、編譯軟件和實(shí)踐套件

學(xué)習(xí)C語(yǔ)言,在了解了C語(yǔ)言的用途和應(yīng)用領(lǐng)域之后,要做三件事:

1、選一本好的C語(yǔ)言教材:推薦譚浩強(qiáng)編寫(xiě)的C語(yǔ)言教材,或信盈達(dá)工程師編寫(xiě)的嵌入式C語(yǔ)言實(shí)戰(zhàn)教程(京東、當(dāng)當(dāng)、天貓等網(wǎng)站均可方便購(gòu)買(mǎi))。

2、選適合練習(xí)的編譯軟件:推薦使用Dev-Cpp編譯軟件或KEILC編譯軟件。

3、選一個(gè)驗(yàn)證C代碼的產(chǎn)品實(shí)踐套件:如果學(xué)習(xí)嵌入式C語(yǔ)言,建議買(mǎi)套單片機(jī)開(kāi)發(fā)板或ARM開(kāi)發(fā)板,在上面編寫(xiě)C語(yǔ)言控制燈的程序,來(lái)驗(yàn)證C語(yǔ)言代碼的準(zhǔn)確性。

第二步:掌握C語(yǔ)言系統(tǒng)化的知識(shí)體系

單個(gè)知識(shí)沒(méi)有任何價(jià)值,只有系統(tǒng)化的知識(shí)才有價(jià)值。

不管學(xué)哪種技術(shù),首先要了解這門(mén)技術(shù)的具體知識(shí)和框架。

C語(yǔ)言學(xué)習(xí)亦如此。

要學(xué)好C語(yǔ)言必須要了解和掌握以下12類(lèi)關(guān)鍵知識(shí)點(diǎn):

1、C程序須有三部分組成(頭文件、主函數(shù)、函數(shù))和編程須遵守的兩個(gè)原則

2、C常用的變量(包含數(shù)組、函數(shù)、指針、結(jié)構(gòu)體)類(lèi)型

3、C常用的運(yùn)算符和關(guān)系表達(dá)式的用法

4、C常用9條基本語(yǔ)句和32個(gè)關(guān)鍵字的用法

5、函數(shù)的用法和組成。

用C語(yǔ)言開(kāi)發(fā)產(chǎn)品,為了程序方便修改和升級(jí),函數(shù)必須有三部分組成:函數(shù)聲明、子函數(shù)和子函數(shù)調(diào)用。

6、數(shù)組的組成和用法

7、指針的用法和指針?biāo)囊?/span>

8、結(jié)構(gòu)體的用法

9、鏈表的用法

10、宏和文件的用法

11、如何模塊化編程、掌握程序編寫(xiě)規(guī)范和程序優(yōu)化方法

12、要掌握C語(yǔ)言開(kāi)發(fā)產(chǎn)品編程時(shí)常用到的30-60種算法等。

然后循序漸進(jìn),一步一個(gè)腳印的慢慢逐個(gè)學(xué)習(xí)、掌握。

第三步:動(dòng)手驗(yàn)證

學(xué)技術(shù)的目的是為了應(yīng)用,所以動(dòng)手驗(yàn)證很重要。

第四步:總結(jié)歸納

編寫(xiě)好一個(gè)程序,編譯通過(guò)了,也在硬件套件板子上驗(yàn)證過(guò)了之后,還需要總結(jié)歸納,最終找到適合自己的編程思路、編程方法。

最后分享一個(gè)C語(yǔ)言小知識(shí):

丹尼斯·里奇, C語(yǔ)言之父,UNIX之父。美國(guó)計(jì)算機(jī)科學(xué)家,對(duì)C語(yǔ)言和其他編程語(yǔ)言、Multics和Unix等操作系統(tǒng)的發(fā)展作出了巨大貢獻(xiàn)。1978年與布萊恩·科爾尼干(Brian W. Kernighan)一起出版了名著《C程序設(shè)計(jì)語(yǔ)言》《The C Programming Language》,此書(shū)已成為C語(yǔ)言方面最權(quán)威的教材之一。

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • C語(yǔ)言
    +關(guān)注

    關(guān)注

    180

    文章

    7614

    瀏覽量

    137505
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    自然語(yǔ)言處理與機(jī)器學(xué)習(xí)的關(guān)系 自然語(yǔ)言處理的基本概念及步驟

    自然語(yǔ)言處理(Natural Language Processing,簡(jiǎn)稱NLP)是人工智能和語(yǔ)言學(xué)領(lǐng)域的一個(gè)分支,它致力于研究如何讓計(jì)算機(jī)能夠理解、解釋和生成人類(lèi)語(yǔ)言。機(jī)器學(xué)習(xí)(Ma
    的頭像 發(fā)表于 12-05 15:21 ?640次閱讀

    NPU支持的編程語(yǔ)言有哪些

    與NPU一起使用: C/C++ : CC++是性能要求較高的應(yīng)用的首選語(yǔ)言,尤其是在需要直接與硬件交互的場(chǎng)景中。許多NPU硬件都提供了
    的頭像 發(fā)表于 11-15 09:21 ?883次閱讀

    自然語(yǔ)言處理與機(jī)器學(xué)習(xí)的區(qū)別

    在人工智能的快速發(fā)展中,自然語(yǔ)言處理(NLP)和機(jī)器學(xué)習(xí)(ML)成為了兩個(gè)核心的研究領(lǐng)域。它們都致力于解決復(fù)雜的問(wèn)題,但側(cè)重點(diǎn)和應(yīng)用場(chǎng)景有所不同。 1. 自然語(yǔ)言處理(NLP) 定義: 自然語(yǔ)
    的頭像 發(fā)表于 11-11 10:35 ?713次閱讀

    使用LLM進(jìn)行自然語(yǔ)言處理的優(yōu)缺點(diǎn)

    自然語(yǔ)言處理(NLP)是人工智能和語(yǔ)言學(xué)領(lǐng)域的一個(gè)分支,它致力于使計(jì)算機(jī)能夠理解、解釋和生成人類(lèi)語(yǔ)言。大型語(yǔ)言模型(LLM)是NLP領(lǐng)域的一項(xiàng)重要技術(shù),它們通過(guò)深度
    的頭像 發(fā)表于 11-08 09:27 ?609次閱讀

    C語(yǔ)言指針學(xué)習(xí)筆記

    本文從底層內(nèi)存分析,徹底讓讀者明白C語(yǔ)言指針的本質(zhì)。
    的頭像 發(fā)表于 11-05 17:40 ?289次閱讀
    <b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>指針<b class='flag-5'>學(xué)習(xí)</b>筆記

    C語(yǔ)言與Java語(yǔ)言的對(duì)比

    C語(yǔ)言和Java語(yǔ)言都是當(dāng)前編程領(lǐng)域中的重要成員,它們各自具有獨(dú)特的優(yōu)勢(shì)和特點(diǎn),適用于不同的應(yīng)用場(chǎng)景。以下將從語(yǔ)法特性、內(nèi)存管理、跨平臺(tái)性、性能、應(yīng)用領(lǐng)域等多個(gè)方面對(duì)C
    的頭像 發(fā)表于 10-29 17:31 ?414次閱讀

    C語(yǔ)言關(guān)鍵字--typedef

    C語(yǔ)言關(guān)鍵字使用方法學(xué)習(xí)指南!
    的頭像 發(fā)表于 10-07 12:44 ?328次閱讀

    倉(cāng)頡語(yǔ)言書(shū)籍申請(qǐng)

    樓主, 您好!我是一名接觸開(kāi)發(fā)語(yǔ)言不久,對(duì)語(yǔ)言學(xué)習(xí)充滿熱情的開(kāi)發(fā)者小白,近期對(duì)華為推出的倉(cāng)頡語(yǔ)言產(chǎn)生了濃厚的興趣。為了更深入地了解和學(xué)習(xí)這種語(yǔ)言
    發(fā)表于 08-06 08:37

    按照這樣學(xué)習(xí)C語(yǔ)言,成為卷王不是夢(mèng)!

    在計(jì)算機(jī)編程領(lǐng)域,C語(yǔ)言被譽(yù)為一種強(qiáng)大而靈活的編程語(yǔ)言,掌握好C語(yǔ)言不僅可以讓你輕松駕馭各種編程任務(wù),還能夠?yàn)槟愕穆殬I(yè)生涯打下堅(jiān)實(shí)的基礎(chǔ)。但
    的頭像 發(fā)表于 07-06 08:04 ?348次閱讀
    按照這樣<b class='flag-5'>學(xué)習(xí)</b><b class='flag-5'>C</b><b class='flag-5'>語(yǔ)言</b>,成為卷王不是夢(mèng)!

    PLC編程語(yǔ)言C語(yǔ)言的區(qū)別

    在工業(yè)自動(dòng)化和計(jì)算機(jī)編程領(lǐng)域中,PLC(可編程邏輯控制器)編程語(yǔ)言C語(yǔ)言各自扮演著重要的角色。盡管兩者都是編程語(yǔ)言,但它們?cè)诙鄠€(gè)方面存在顯著的區(qū)別。本文將從多個(gè)維度深入探討PLC編程
    的頭像 發(fā)表于 06-14 17:11 ?3159次閱讀

    如何成為一名嵌入式C語(yǔ)言高手?

    如何成為一名嵌入式C語(yǔ)言高手? 嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域的核心,而C語(yǔ)言則是嵌入式系統(tǒng)開(kāi)發(fā)中最常用的編程語(yǔ)言之一。成為一名嵌入式
    發(fā)表于 04-07 16:03

    如何成為一名嵌入式C語(yǔ)言高手?

    如何成為一名嵌入式C語(yǔ)言高手? 嵌入式系統(tǒng)是當(dāng)今科技領(lǐng)域的核心,而C語(yǔ)言則是嵌入式系統(tǒng)開(kāi)發(fā)中最常用的編程語(yǔ)言之一。成為一名嵌入式
    發(fā)表于 03-25 14:12

    plc編程語(yǔ)言c語(yǔ)言的聯(lián)系 c語(yǔ)言和PLC有什么區(qū)別

    PLC編程語(yǔ)言C語(yǔ)言的聯(lián)系 PLC(可編程邏輯控制器)是一種針對(duì)自動(dòng)化控制系統(tǒng)的特殊計(jì)算機(jī)。PLC編程語(yǔ)言是為了控制和管理自動(dòng)化生產(chǎn)過(guò)程中的各種設(shè)備而設(shè)計(jì)的。與之相比,
    的頭像 發(fā)表于 02-05 14:21 ?4361次閱讀

    c語(yǔ)言,c++,java,python區(qū)別

    操作系統(tǒng)、嵌入式系統(tǒng)等對(duì)性能要求較高的場(chǎng)景。C語(yǔ)言的語(yǔ)法相對(duì)簡(jiǎn)單,學(xué)習(xí)曲線較平緩,也是學(xué)習(xí)其他高級(jí)語(yǔ)言的入門(mén)
    的頭像 發(fā)表于 02-05 14:11 ?2564次閱讀

    vb語(yǔ)言c++語(yǔ)言的區(qū)別

    VB語(yǔ)言C++語(yǔ)言是兩種不同的編程語(yǔ)言,雖然它們都屬于高級(jí)編程語(yǔ)言,但在設(shè)計(jì)和用途上有很多區(qū)別。下面將詳細(xì)比較VB
    的頭像 發(fā)表于 02-01 10:20 ?2489次閱讀