999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

C語言指針部分教學心得

2013-05-14 08:41:46楊英翔
卷宗 2013年11期
關鍵詞:分配程序學生

楊英翔

摘 要:C語言是國內外廣泛使用的一種計算機語言,C語言功能豐富、表達能力強、使用靈活方便、應用面廣、目標程序效率高、可移植性好,既具有高級語言的優點,又具有低級語言的許多特點。

關鍵詞:C語言;教學

0 引言

C語言是國內外廣泛使用的一種計算機語言,C語言功能豐富、表達能力強、使用靈活方便、應用面廣、目標程序效率高、可移植性好,既具有高級語言的優點,又具有低級語言的許多特點。因此,C語言不僅是計算機專業學生的一門重要課程,也是高校中非計算機專業學生學習計算機知識的一門重要課程。

作者的C語言課都是在機房里進行的,學生可以人手一機。在C語言的教學過程中,精講多練,講練結合,依據學生的能力,采用以學生為主體逐步引導、啟發學生。即教師在課堂上起引導的作用,讓學生在機學習,邊學邊練,不斷發現問題,解決問題,循序漸進,逐步提高。這種方法打破了課堂教學和實驗教學的嚴格界線,在C語言的教學實踐中取得了良好的效果。

1 指針用法

指針通常指向一片存儲空間,而空間可采用靜態分配或動態分配。靜態分配是指在編寫C程序時已確定了存儲空間。如使用全局變量,static char a[size],則編譯器為變量a在程序運行時的數據區內固定分配size字節的空間;如函數內定義一個局部變量charb[size],則在執行函數時,局部變量b在棧上分配size字節的存儲空間,函數調用結束時將自動釋放局部數組變量b的存儲空間。

動態分配是指調用庫函數malloc(size)在堆上分配size個字節的連續空間,調用結束后返回一個指向分配好的存儲空間的指針,編程時必須考慮到在使用完該存儲空間后調用對應的函數free( )來釋放掉。

在C編程時,一定要合理使用指針,否則很容易在執行時出現各種錯誤。以下列出常見的幾個錯誤:

(1)在C程序中定義了一個指針變量,但沒有對其進行初始化,將該指針變量稱為“野指針”。如果此后對該指針變量所指的存儲空間進行操作,程序會出現嚴重的錯誤,因為,在定義指針變量后,指針變量的值是不確定的,即指針隨機指向某個內存地址,此時的指針所指的內存直接賦值操作,將該單元中原有的數據覆蓋,使該數據丟失,若指針指向的是系統的數據區中,會導致系統運行的異常甚至死機。因此,C編程時要及時把指針變量賦值,使指針有正確的指向。

(2)如用語句p = malloc(size)來分配空間,應對分配后的參數p進行檢查,如p為NULL則表示分配不到存儲空間,此時不能對p指向的空間操作;即使為p分配了空間,也要注意對該指針操作時不能超出其空間范圍。使用完后,一定要釋放該空間,否則可能引起存儲空間的耗盡。

(3)棧溢出。棧是在調用一個子函數時用來保存和恢復現場,以及傳遞參數和存放局部變量,但在執行子函數時,如果其中的局部變量指針出現使用錯誤,則會發生棧溢出。例如在子函數中,有下列代碼:

char p[8];

strcpy(p,/Notice: This is a test pro-gram!0);

由于棧中為局部變量p只分配了8個字節空間,而strcpy()函數將覆蓋p指向的連續32個字節空間(包括字符串結束符-\ 0.),可能將棧中存放的函數返回地址等內容重寫了,所以子函數執行完后就無法返回到原來的函數繼續運行了。

(4)堆溢出。堆的使用與所在運行平臺的操作系統和編譯器有關,堆溢出也相對復雜。如程序為:

char *p;

p = (char*)malloc(8);

strcpy(p,/No-tice: This is a test program!0);

則執行strcpy()時將覆蓋了緊跟在指針p指向的32個字節的內容,引起堆溢出,程序運行無法正確。

(5)void的用法。void在定義某個函數時,表示該函數無返回值,但庫函數void malloc(size)除外,它并不表示malloc(size)無返回值[5],而表示函數的返回值可以轉換成任何類型的地址值(如char *,int *等)。void不能用來定義數值變量,但可以用void來定義指針變量,它的真實含義是可以將任何數據類型的地址賦給指針變量。

(6)區分數組和指針變量在使用過程中的不同,指針可以通過加減數值來移動它所指的位置,如p+=5;而數組名是不能移動的,如char k[20]; k++;對k的操作是錯誤的。

(7)指針移動時挪動的位移與指針所定義的類型相關,如a和b定義為:char *a;int *b;后續的語句:a+=10;b+=10;則表示a向后移動了10個字節,而b向后移動了10個整型長度,即40個字節。指針變量在使用時要與定義的類型相一致,char c[10];int *d;d=c;此后對d的操作很可能造成混亂。

2 課堂教學中注意培養良好的編程習慣

(1)入門階段。分析和演示運行簡單的C程序,和學生一起對程序進行簡單修改,再演示運行,讓學生對C程序產生感性的認識,激發學生的學習興趣和熱情。這時需要注意在編寫C程序過程中的一些特定格式和語法要求,幫助學生養成良好的編程習慣。

(2)基礎階段。這時的學生應該已經學習了算法、變量、表達式、語句、程序結構等C程序基礎知識。這一階段中,我會經常提出一些簡單的問題,放手讓學生討論,逐步深入理解問題,逐步完善流程圖,然后把流程圖翻譯成標準的C程序,并進行試運行和調試。

這一階段中,可以以教材為線索,擴展介紹C語言的語法知識,但不能停留在語法上,可以根據任務和項目的需要插入介紹一些系統函數,并適時地將所學知識應用到項目和任務當中,讓學生學以致用。

(3)綜合階段。為了讓學生熟練使用語法知識,還需要布置一些較長的程序讓學生閱讀分解,嘗試修改語句和程序結構。這一階段中,我會經常提出一些相對復雜的問題,放手讓學生討論,逐步深入理解問題,逐步完善流程圖,然后把流程圖翻譯成標準的C程序,然后對流程圖和程序反復并進行修改、運行和調試。

這一階段中,要鼓勵學生大膽創新,創造性的運用書上的知識。同時,和學生強調編程的功夫在編程之外,養成學生良好的編程習慣,為學生以后的發展打下基礎。

(4)提升階段。我會根據不同層次的學生提出不同的設計要求,因材施教,盡量使每一個學生都能將所學到的程序設計方法和相關語法綜合應用。同時,告訴學生,要達到能用C語言編寫較大的應用程序,并不是僅在一個學期的學習過程中就能完成的,在以后的實踐中,要繼續學習。

在C語言的教學中,采用適度靈活的教學方法,理論講授和上機實踐緊密結合,語法與實例緊密結合,可以激發學生的學習興趣,增強學生的求知欲,降低課程難度,會達到良好的教學效果。當然,具體教學方式、方法的選擇,不同的老師可以根據實際需要而定。

參考文獻

[1] 范華,秦茂玲,張俊.透視C程序設計語言[J].計算機技術與發展,2008,18(6):64 -661

[2] 譚浩強.C程序設計[M].第3版1北京:清華大學出版社,2005.

[3] Kernighan B W,Ritchie D M.C程序設計語言[M].第2版.徐寶文,等譯.北京:機械工業出版社,2005.

[4] Reek KA.POINTERS ONC[M].徐 波,譯.北京:人民郵電出版社,2003.

猜你喜歡
分配程序學生
應答器THR和TFFR分配及SIL等級探討
遺產的分配
試論我國未決羈押程序的立法完善
人大建設(2019年12期)2019-05-21 02:55:44
一種分配十分不均的財富
績效考核分配的實踐與思考
趕不走的學生
“程序猿”的生活什么樣
英國與歐盟正式啟動“離婚”程序程序
環球時報(2017-03-30)2017-03-30 06:44:45
學生寫話
學生寫的話
主站蜘蛛池模板: 毛片免费在线| 最新无码专区超级碰碰碰| 婷婷在线网站| 性喷潮久久久久久久久| 国产欧美自拍视频| 91九色最新地址| 天堂成人在线| 国产精品久久久久久久伊一| 国产福利不卡视频| 88av在线播放| 久久一本日韩精品中文字幕屁孩| 天堂成人在线| 成人在线综合| 国产欧美在线| 中文字幕在线永久在线视频2020| 国产午夜精品一区二区三| 亚洲欧美日韩高清综合678| 色综合综合网| 亚洲成人77777| 99视频免费观看| 久久99国产综合精品女同| 亚洲人成人伊人成综合网无码| 99一级毛片| www.99在线观看| 精品国产黑色丝袜高跟鞋| 欧美激情视频二区| 免费女人18毛片a级毛片视频| 亚洲精品波多野结衣| 天天爽免费视频| 在线精品亚洲一区二区古装| 国产精品私拍在线爆乳| 国产成人精品一区二区秒拍1o| 欧美日韩在线第一页| 伊在人亚洲香蕉精品播放| 免费高清a毛片| 婷婷色一区二区三区| 久久精品视频一| 一本色道久久88亚洲综合| 国产一区二区三区在线观看视频| 九九久久99精品| 国产主播福利在线观看| 精品一区二区三区四区五区| 午夜激情福利视频| 亚洲av无码人妻| 免费激情网址| 精品一区二区久久久久网站| 22sihu国产精品视频影视资讯| a天堂视频在线| 中文字幕在线永久在线视频2020| 久久人人爽人人爽人人片aV东京热| 色天堂无毒不卡| 亚洲精品视频免费| 亚洲综合国产一区二区三区| 亚洲国产亚综合在线区| 国产自在自线午夜精品视频| 国产中文一区二区苍井空| 国产综合网站| 99精品国产自在现线观看| 在线视频一区二区三区不卡| 伊人久久久大香线蕉综合直播| 91麻豆精品视频| 91在线日韩在线播放| 欧美国产精品拍自| 亚洲日韩精品伊甸| 亚洲天堂网在线观看视频| 在线播放真实国产乱子伦| 亚洲日韩精品无码专区97| 99激情网| 毛片久久网站小视频| 在线人成精品免费视频| 伊人国产无码高清视频| 成人在线不卡视频| 免费a级毛片视频| 久青草免费在线视频| 免费AV在线播放观看18禁强制| 欧美专区在线观看| 精品国产一区91在线| 婷婷丁香在线观看| 无码 在线 在线| 色久综合在线| 国产精品专区第1页| 国产主播在线一区|