IT技術(shù)資料庫(kù)
輸入機(jī)構(gòu)/課程/服務(wù)名稱

零基礎(chǔ)想學(xué)好編程!C語(yǔ)言最難啃的 3 塊硬骨頭,你全吃透了嗎

2021-12-16 11:32:23
# IT技術(shù) # IT培訓(xùn) # IT行業(yè)

提到C語(yǔ)言很多初學(xué)者都覺(jué)得,學(xué)到中間就進(jìn)行不下去了,因?yàn)榕龅搅藥讉€(gè)硬骨頭死活翻不過(guò)去,于是很多人給C語(yǔ)言下結(jié)論太難了,太靠近底層了,特別是那幾塊難啃的骨頭,直接理解不了,進(jìn)行不下去。


今天就來(lái)說(shuō)下,最難啃的三塊骨頭,看到底是誰(shuí)?


內(nèi)存布局


指針公認(rèn)最難理解的概念,也是讓很多初學(xué)者選擇放棄的直接原因


指針之所以難理解,因?yàn)橹羔槺旧砭褪且粋€(gè)變量,是一個(gè)非常特殊的變量,專門(mén)存放地址的變量,這個(gè)地址需要給申請(qǐng)空間才能裝東西,而且因?yàn)槭莻€(gè)變量可以中間賦值,這么一倒騰很多人就開(kāi)始犯暈了,繞不開(kāi)玩了。C語(yǔ)言之所以被很多高手所喜歡,就是指針的魅力,中間可以靈活的切換,執(zhí)行效率超高,這點(diǎn)也是讓小白暈菜的地方。


指針是學(xué)習(xí)繞不過(guò)去的知識(shí)點(diǎn),而且學(xué)完C語(yǔ)言,下一步緊接著切換到數(shù)據(jù)結(jié)構(gòu)和算法,指針是切換的重點(diǎn),指針搞不定下一步進(jìn)行起來(lái)就很難,會(huì)讓很多人放棄繼續(xù)學(xué)習(xí)的勇氣。


指針直接對(duì)接內(nèi)存結(jié)構(gòu),常見(jiàn)的C語(yǔ)言里面的指針亂指,數(shù)組越界根本原因就是內(nèi)存問(wèn)題。在指針這個(gè)點(diǎn)有無(wú)窮無(wú)盡的發(fā)揮空間。很多編程的技巧都在此集結(jié)。


指針還涉及如何申請(qǐng)釋放內(nèi)存,如果釋放不及時(shí)就會(huì)出現(xiàn)內(nèi)存泄露的情況,指針是高效好用,但不徹底搞明白對(duì)于有些人來(lái)說(shuō)簡(jiǎn)直就是噩夢(mèng)。


廣告白酒放了三年多過(guò)保質(zhì)期了!還能繼續(xù)喝嗎? 后悔沒(méi)有早點(diǎn)知道!

函數(shù)概念


函數(shù)概念,面向過(guò)程對(duì)象模塊的基本單位,以及對(duì)應(yīng)各種組合,函數(shù)指針,指針函數(shù)


一個(gè)函數(shù)就是一個(gè)業(yè)務(wù)邏輯塊,是面向過(guò)程,單元模塊的最小單元,而且在函數(shù)的執(zhí)行過(guò)程中,形參,實(shí)參如何交換數(shù)據(jù),如何將數(shù)據(jù)傳遞出去,如何設(shè)計(jì)一個(gè)合理的函數(shù),不單單是解決一個(gè)功能,還要看是不是能夠復(fù)用,避免重復(fù)造輪子。


函數(shù)指針和指針函數(shù),表面是兩個(gè)字面意思的互換實(shí)際上含義截然不同,指針函數(shù)比較好理解,就是返回指針的一個(gè)函數(shù),函數(shù)指針這個(gè)主要用在回調(diào)函數(shù),很多人覺(jué)得函數(shù)都沒(méi)還搞明白,回調(diào)函數(shù)更暈菜了。其實(shí)可以通俗的理解指向函數(shù)的指針,本身是一個(gè)指針變量,只不過(guò)在初始化的時(shí)候指向了函數(shù),這又回到了指針層面。沒(méi)搞明白指針再次深入的向前走特別難。


結(jié)構(gòu)體,遞歸


很多在大學(xué)學(xué)習(xí)C語(yǔ)言的,很多課程都沒(méi)學(xué)完,結(jié)構(gòu)體都沒(méi)學(xué)到,因?yàn)閺恼鹿?jié)的安排來(lái)看好像,結(jié)構(gòu)體學(xué)習(xí)放在教材的后半部分了,弄得很多學(xué)生覺(jué)得結(jié)構(gòu)體不重要,如果只是應(yīng)付學(xué)校的考試,或者就是為了混個(gè)畢業(yè)證,的確學(xué)的意義不大。


如果想從事編程這個(gè)行業(yè),對(duì)這個(gè)概念還不了解,基本上無(wú)法構(gòu)造數(shù)據(jù)模型,沒(méi)有一個(gè)業(yè)務(wù)體是完全使用原生數(shù)據(jù)類型來(lái)完成的,很多高手在設(shè)計(jì)數(shù)據(jù)模型的時(shí)候,一般先把頭文件中的結(jié)構(gòu)體數(shù)據(jù)整理出來(lái)。然后設(shè)計(jì)好功能函數(shù)的參數(shù),以及名字,然后才真正開(kāi)始寫(xiě)c源碼。


如果從節(jié)省空間考慮結(jié)構(gòu)體里面的數(shù)據(jù)放的順序不一樣在內(nèi)存中占用的空間也不一樣,結(jié)構(gòu)體與結(jié)構(gòu)體之間賦值,結(jié)構(gòu)體存在指針那么賦值要特別注意,需要進(jìn)行深度的賦值。


遞歸一般用于從頭到尾統(tǒng)計(jì)或者羅列一些數(shù)據(jù),在使用的時(shí)候很多初學(xué)者都覺(jué)得別扭,怎么還能自己調(diào)用自己?而且在使用的時(shí)候,一定設(shè)置好跳出的條件,不然無(wú)休止的進(jìn)行下去,真就成無(wú)限死循環(huán)了。


這三大塊硬骨頭是學(xué)習(xí)C語(yǔ)言的絆腳石,下功夫拿掉基本上C語(yǔ)言的大動(dòng)脈就打通了,那么再去學(xué)習(xí)別的內(nèi)容就相對(duì)比較簡(jiǎn)單了。編程學(xué)習(xí)過(guò)程中越是痛苦的時(shí)候,學(xué)到的東西就會(huì)越多,克服過(guò)去就會(huì)自己的技能,放棄了前面的付出的時(shí)間都將清零。越是難學(xué)的語(yǔ)言在入門(mén)之后,在入門(mén)之后越覺(jué)得過(guò)癮,而且還容易上癮。你上癮了沒(méi)?


*文章內(nèi)容和圖片均來(lái)源于網(wǎng)絡(luò),如有侵權(quán),請(qǐng)聯(lián)系刪除。

查看剩余內(nèi)容
loading
Hi,我是教育寶平臺(tái)顧問(wèn) 添加我的微信,在查找或下載資料時(shí),有任何問(wèn)題,我會(huì)隨時(shí)為您解決~
loading
掃描二維碼 添加顧問(wèn)微信

點(diǎn)贊

收藏

資深學(xué)習(xí)規(guī)劃師,免費(fèi)幫您答疑解惑,定制學(xué)習(xí)方案
限時(shí)免費(fèi)咨詢
喜歡此內(nèi)容的人還喜歡
  1. Java開(kāi)發(fā)人員2021必備知識(shí)
    攻略
    # IT技術(shù) # Java
  2. web前端是如今it行業(yè)大家都非常熟知的一門(mén)編程語(yǔ)言技術(shù)
    攻略
    # IT技術(shù) # IT行業(yè)
  3. 對(duì)于很多Java程序員來(lái)說(shuō),年齡的增長(zhǎng)其實(shí)不是那么可怕,
    攻略
    # IT技術(shù)
  4. 合格的工程師工程師在一個(gè)團(tuán)隊(duì)中的角色是probl
    攻略
    # IT技術(shù) # IT行業(yè)
  5. 想要學(xué)web前端,當(dāng)然不一定要去培訓(xùn)機(jī)構(gòu),如果自學(xué)能力足
    攻略
    # IT技術(shù) # IT行業(yè) # IT培訓(xùn)
  6. 最近兩年,芯片行業(yè)涌入不少新玩家,其中很多公司表現(xiàn)都相當(dāng)
    攻略
    # IT行業(yè) # IT技術(shù)
職位/薪酬更多
相關(guān)課程 更多
教育寶IT技術(shù)頻道
教育寶致力于打造中國(guó)最專業(yè)的IT技術(shù)學(xué)習(xí)平臺(tái),為IT技術(shù)學(xué)員、教育機(jī)構(gòu)、從業(yè)者和上下游搭建連接、互動(dòng)、交流和賦能平臺(tái)。