c的結(jié)構(gòu) 想學(xué)數(shù)據(jù)結(jié)構(gòu)和算法要不要學(xué)c語(yǔ)言?
想學(xué)數(shù)據(jù)結(jié)構(gòu)和算法要不要學(xué)c語(yǔ)言?學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法不一定要用C語(yǔ)言,C也可以,但是學(xué)習(xí)C語(yǔ)言,要提高編程能力,最好是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法。為什么?因?yàn)閿?shù)據(jù)結(jié)構(gòu)和算法本身與編程語(yǔ)言關(guān)系不大,但不同語(yǔ)言的
想學(xué)數(shù)據(jù)結(jié)構(gòu)和算法要不要學(xué)c語(yǔ)言?
學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法不一定要用C語(yǔ)言,C也可以,但是學(xué)習(xí)C語(yǔ)言,要提高編程能力,最好是學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)和算法。
為什么?因?yàn)閿?shù)據(jù)結(jié)構(gòu)和算法本身與編程語(yǔ)言關(guān)系不大,但不同語(yǔ)言的學(xué)習(xí)效率會(huì)有所不同。我們應(yīng)該避免那些對(duì)算法有大量語(yǔ)法干擾的語(yǔ)言。
合理的代碼結(jié)構(gòu)可以減少代碼量,提高代碼效率,構(gòu)建更強(qiáng)的代碼框架。
學(xué)習(xí)C語(yǔ)言版本的數(shù)據(jù)結(jié)構(gòu),可以對(duì)C語(yǔ)言本身有更深入的了解和應(yīng)用,如結(jié)構(gòu)、指針、內(nèi)存管理等技術(shù)要點(diǎn),
算法的使用,如MATLAB算法的驗(yàn)證和研究等,常用的算法需要數(shù)學(xué),算法語(yǔ)言,您可以根據(jù)工作需要學(xué)習(xí)編程語(yǔ)言
把程序的代碼、數(shù)據(jù)和堆棧作為一塊完整的磚塊。編譯器是一個(gè)制磚機(jī),它安排了這個(gè)磚的內(nèi)部結(jié)構(gòu)。
劃線系統(tǒng)只是一塊磚,不會(huì)有互相覆蓋的矛盾。
如果您運(yùn)行多任務(wù)處理,則會(huì)有更多的磚塊。但在這個(gè)時(shí)候,操作系統(tǒng)通常是用來(lái)管理磚塊的。堆放磚塊時(shí),每一塊磚塊都會(huì)給出不同的起始坐標(biāo),以確保兩塊磚塊不占一個(gè)空間。
早期的DOS操作系統(tǒng)規(guī)定每個(gè)程序塊的高度不應(yīng)超過(guò)1米。編譯器制作的每個(gè)程序塊都使用偏移地址0000H ffffh來(lái)區(qū)分單元,但是當(dāng)操作系統(tǒng)將程序塊移動(dòng)到物理內(nèi)存時(shí),它會(huì)給每個(gè)程序塊一個(gè)不同的段起始地址,偏移地址是物理地址。所以沒(méi)有重疊。
當(dāng)然,還有編譯器。除了構(gòu)建磚塊外,編譯器還將生成一個(gè)規(guī)范標(biāo)簽,告知操作系統(tǒng)磚塊的厚度,這樣操作系統(tǒng)就可以在不浪費(fèi)空間的情況下很好地堆疊磚塊。不同的操作系統(tǒng)有不同的標(biāo)簽格式,所以windows程序不能直接在Linux下運(yùn)行。
后來(lái),MMU出現(xiàn)在處理器、內(nèi)存管理單元中,程序地址空間和物理地址空間之間的轉(zhuǎn)換變得更加復(fù)雜。但是,確保不同的程序不覆蓋自己的空間是一項(xiàng)基本要求。
程序可能會(huì)覆蓋其他程序空間,這可能是惡意代碼造成的。CPU的安全特性越來(lái)越強(qiáng),這是很少見(jiàn)的。
c語(yǔ)言程序經(jīng)過(guò)編譯后,每條指令都有一個(gè)內(nèi)存地址,那兩個(gè)程序如果有相同內(nèi)存地址的指令怎么辦?
首先,我認(rèn)為作為一名大學(xué)生,自學(xué)能力很強(qiáng)。對(duì)于C語(yǔ)言沒(méi)有學(xué)完的,可以花時(shí)間認(rèn)真學(xué)習(xí)。不,你可以去圖書(shū)館查資料,或者上網(wǎng),或者自學(xué)。現(xiàn)在網(wǎng)絡(luò)平臺(tái)有很多優(yōu)質(zhì)資源,你可以試試。第二,數(shù)據(jù)結(jié)構(gòu)的算法是抽象的,必須認(rèn)真研究。它是編程的基礎(chǔ),與C語(yǔ)言沒(méi)有必然的聯(lián)系。我們可以用C語(yǔ)言實(shí)現(xiàn)一些算法。它也可以用其他語(yǔ)言實(shí)現(xiàn)。
第三,對(duì)自己有信心。沒(méi)有問(wèn)題可以與老師和同學(xué)交流。既然我們選了一個(gè)好專(zhuān)業(yè),就應(yīng)該深入學(xué)習(xí)。
這是我的一些看法,希望對(duì)您有所幫助!