C語言是一門面向過程的、抽象化的通用程序設(shè)計語言,廣泛應(yīng)用于底層開發(fā)。C語言能以簡易的方式編譯、處理低級存儲器。C語言是僅產(chǎn)生少量的機器語言以及不需要任何運行環(huán)境支持便能運行的高效率程序設(shè)計語言。 下面是小編帶來的有關(guān)大一c語言數(shù)組實驗心得,希望大家喜歡
試驗?zāi)康?1、 掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法; 2、 掌握字符數(shù)組和字符串函數(shù)的使用; 3、 掌握與數(shù)組有關(guān)的算法特別是排序算法。 二、 實驗內(nèi)容 教材習(xí)題P1527.2 三、 算法流程圖 四、 程序清單 include void main {int i,j,min,s,a[11]; printf“請輸入數(shù)組
“; fori1;i10;i {printf“a[d]“,i; scanf“d“, } printf“
“; printf“原數(shù)據(jù)為
“; fori1;i10;i printf“5d“,a[i]; printf“
“; fori1;i9;i {mini; forji1;ja[j] minj; sa[i]; a[i]a[min]; a[min]s; } printf“排好序的數(shù)組為
“; fori1;i10;i printf“5d“,a[i]; printf“
“; } 五、 運行結(jié)果 六、 實驗總結(jié)(調(diào)試分析和體會) 這個星期我對使用數(shù)組進(jìn)行程序設(shè)計的學(xué)習(xí),在之前的基礎(chǔ)上,我更加努力,課前先預(yù)習(xí),上課認(rèn)真聽,經(jīng)過我的努力我進(jìn)步了很多,雖然有了很大的進(jìn)步,但在學(xué)習(xí)上還是存在很多問題。但這次的作業(yè)比上周的條件結(jié)構(gòu)程序好多了。經(jīng)過自己的努力,我已經(jīng)掌握一維數(shù)組和二維數(shù)組的定義、賦值和輸入輸出的方法;掌握字符數(shù)組和字符串函數(shù)的使用;掌握與數(shù)組有關(guān)的算法特別是排序算法。這一單元數(shù)組跟以前的選擇結(jié)構(gòu)程序設(shè)計和循環(huán)控制相比,內(nèi)容要繁瑣得多,程序語句沒有以前那么明了,要經(jīng)過認(rèn)真的思考,在經(jīng)過自己思考后,即使是自己懂得算法的原理后,要來調(diào)程序又困難重重,一個程序要經(jīng)過認(rèn)真思考和反復(fù)的調(diào)試程序,才能完成。在多次的練習(xí)下,我基本上能結(jié)合程序掌握一些算法。通過多次的實驗操作,我的操作能力有了很大的進(jìn)步,但在學(xué)習(xí)的過程中并非一帆風(fēng)順,特別是在對程序的語句上,問題特別多。但我經(jīng)過耐心地操作和虛心地請教終于掌握了正確的操作方法
指針是c語言的精華,也是c語言的難點,它就像一把雙刃劍,鋒利無比但運用的不好也會給自己帶來危害,后果比較嚴(yán)重,所以重點來說說指針。
很多初學(xué)者弄不清指針和數(shù)組到底有什么樣的關(guān)系,為避免混淆不清,下面總結(jié)一下指針和數(shù)組的特性。
指針是保存數(shù)據(jù)的地址,任何存入指針變量的數(shù)據(jù)都會被當(dāng)作地址來處理,指針變量本身的地址由編譯器另外存儲,存儲在哪里,我們并不知道,間接訪問數(shù)據(jù),首先取得指針變量的內(nèi)容,把它作為地址,然后從這個地址讀或?qū)懭霐?shù)據(jù)。
指針可以用間接訪問操作符(_)訪問,也可以用以下標(biāo)的形式訪問,指針一般用于動態(tài)數(shù)據(jù)結(jié)構(gòu)。
數(shù)組是用來保存數(shù)據(jù)的,數(shù)組名代表的是數(shù)組首元素的地址而不是數(shù)組的首地址,所以數(shù)組p與&p是有區(qū)別的,雖然內(nèi)容相同,但意義卻不同,&p才是整個數(shù)組的首地址,數(shù)組名是整個數(shù)組的名字,數(shù)組內(nèi)每個元素并沒有名字,不能把數(shù)組當(dāng)一個整體來進(jìn)行讀寫操作。
當(dāng)然數(shù)組在初始化時也有例外,如int p[]=“12345”是合法的。
數(shù)組可以以指針的形式訪問如_(p+i);也可以以下標(biāo)的形式訪問p[i],但其本質(zhì)都是p所代表的數(shù)組首元素的地址加上i_sizeof(類型)個字節(jié)作為數(shù)據(jù)的真正地址來進(jìn)行訪問的。
數(shù)組通常用于存儲固定數(shù)目且數(shù)據(jù)類型相同的元素。
剛開始的時候我
有點分不清指針數(shù)組和數(shù)組指針,現(xiàn)在也總結(jié)一下,指針數(shù)組,首先它是一個數(shù)組,數(shù)組的每個元素都是指針,可以理解為“存儲指針的數(shù)組”的簡稱,數(shù)組指針,首先它是一個指針,它指向一個數(shù)組,在32位系統(tǒng)下永遠(yuǎn)只占4個字節(jié),至于它指向的數(shù)組有多少個字節(jié),并不知道,可以理解為“指向數(shù)組的指針”。
舉個例子,int _p1[10]與int (_p2) [10], 要理解這個問題,首先要清楚操作符的優(yōu)先級,“[]” 的優(yōu)先級比“_” 的優(yōu)先級高,所以首先p1與“[10]”結(jié)合構(gòu)成一個數(shù)組p1[10],int _為修飾數(shù)組的內(nèi)容,所以數(shù)組元素是指向int類型的指針,所以這個是指針數(shù)組,“()” 的優(yōu)先級比“[]” 的優(yōu)先級高,“_”與p2結(jié)合構(gòu)成一個指針變量,int修飾數(shù)組的內(nèi)容,即數(shù)組的每個元素,數(shù)組這里并沒有名字,是個匿名數(shù)組,現(xiàn)在清楚了p2是一個指針,它指向一個包含10個int類型數(shù)據(jù)的數(shù)組,即為數(shù)組指針。
下面再說說內(nèi)存管理,內(nèi)存分為三個部分:靜態(tài)區(qū)、堆、棧。
其實堆棧就是棧,而不是堆。
靜態(tài)區(qū)是保存自動全局變量和static變量。
靜態(tài)區(qū)的內(nèi)容在整個程序的生命周期內(nèi)都存在,由編譯器在編譯的時候分配。
堆是由malloc系統(tǒng)函數(shù)分配內(nèi)存的。
其生命周期由free和delete決定。
棧保存局部變量。
棧上的內(nèi)容只在函數(shù)范圍內(nèi)存在,當(dāng)函數(shù)運行結(jié)束,這些內(nèi)容也會自動被銷毀。
再說說有關(guān)內(nèi)存需要注意的地方,定義了指針變量,在使用之前一定要初始化使它指向一塊合法的內(nèi)存,不管什么時候,我們在使用指針之前一定要確保指針是有效的。
使用malloc系列函數(shù)分配內(nèi)存,使用完之后應(yīng)及時釋放內(nèi)存,以防止內(nèi)存泄露。
最后總結(jié)的說一下學(xué)習(xí)c語言的方法就是編程編程再編程,理論學(xué)習(xí)與上機操作同時進(jìn)行,另外在編程序的過程中要養(yǎng)成良好的編程習(xí)慣。
c語言是一種結(jié)構(gòu)化語言,是大部分編程語言的基礎(chǔ),c語言學(xué)好了,以后的java,c#以及更多的編程語言才有可能學(xué)好。下面就跟南寧達(dá)內(nèi)小編一起,要學(xué)好c語言必須了解的四點:
1、課前認(rèn)真預(yù)習(xí),把下一節(jié)要上的內(nèi)容先自己看一遍,把不懂的地方打個標(biāo)記,等上課的時候可以請教老師。理解書上的例子,搞懂每個語句的含義,用法??赐旰髧L試著不看例子自己編寫程序,編完以后再跟書上進(jìn)行比較,看自己的程序還有哪方面的不足,再進(jìn)行改正。想要真正學(xué)好c語言光看書是不夠的,一定要自己多動手?! ?、上課認(rèn)真聽講積極思考,提高上課效率。老師上課講述的都是課程的重點和難點,聽好課程可以達(dá)到"事半功倍"的目的?! ?、課后復(fù)習(xí)。把每天的上課內(nèi)容回家再溫習(xí)一遍,獨立完成課后的作業(yè),如果有時間,最好能找點課外書籍、課外習(xí)題什么的來鞏固所學(xué)的內(nèi)容?! ?、主動上機,多多實踐,提高動手能力。通過上機實踐來驗證所學(xué)的理論,通過在機器上查找錯誤來鞏固概念,通過提高上機能力來促進(jìn)理論學(xué)習(xí),開闊編程思路,提高反映速度,提高分析問題解決問題的能力,鍛煉心理素質(zhì),提高心理承受能力。 學(xué)習(xí)c語言的初期重點要放在掌握語言的語法和規(guī)定上,一定要養(yǎng)成良好的編程習(xí)慣,平時寫程序注意語法規(guī)范格式控制,格式規(guī)范了,出了錯誤也容易找到出錯的地方,這是c語言的基礎(chǔ);后期的重點要轉(zhuǎn)移到掌握編程的思路和基本算法上來。課后多做習(xí)題,找一些經(jīng)典例子嘗試自己編寫,寫程序切忌半途而費,想到一個思路,就要按自己思路把它寫完,就算錯了,也可以讓自己了解為什么這樣做會錯?錯在哪里?會出什么結(jié)果?以后自己也很難在這個地方犯同樣的錯誤。當(dāng)學(xué)到一個新的知識點,就試著把它運用到以前做的習(xí)題上,不但鞏固了以前學(xué)的內(nèi)容,也更加能加強新知識的理解?! W(xué)習(xí)c語言就是要經(jīng)過以上這樣幾個反復(fù),才能前后融會貫通,積累所應(yīng)該掌握的知識。c語言是這樣,其他語言也是這樣,從基本抓起,多動手,多動腦,不懂就問,注意平時積累。