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
學生寫話
學生寫的話
主站蜘蛛池模板: 欧美午夜在线视频| 午夜天堂视频| 国产一在线| 伊人久久精品无码麻豆精品| 国产a网站| 伊大人香蕉久久网欧美| 国产又黄又硬又粗| 永久免费无码成人网站| 亚洲Va中文字幕久久一区| 国产激情无码一区二区APP| 日本高清视频在线www色| 无码人中文字幕| 99热这里都是国产精品| 伊人成人在线视频| 玩两个丰满老熟女久久网| 亚洲国产理论片在线播放| av无码一区二区三区在线| 国产精品第5页| 亚洲天堂视频网站| 在线播放国产99re| 亚洲国产成人自拍| 久久久久人妻一区精品色奶水| 波多野结衣AV无码久久一区| 欧美精品不卡| 91精品免费久久久| 国产97公开成人免费视频| 免费一级α片在线观看| 久久黄色影院| 国产国产人成免费视频77777| 亚洲国产综合精品一区| 国产凹凸视频在线观看| 国产区福利小视频在线观看尤物| 女人毛片a级大学毛片免费 | 一级在线毛片| 久久青草热| 19国产精品麻豆免费观看| 天堂在线视频精品| 手机成人午夜在线视频| 亚洲区第一页| 欧美在线导航| 国产在线观看人成激情视频| AⅤ色综合久久天堂AV色综合| 国产高清国内精品福利| 91国内外精品自在线播放| 狠狠五月天中文字幕| 亚洲人成网址| 国产成人高清精品免费| 亚洲 欧美 偷自乱 图片| 五月天久久综合| 国产精品久久自在自2021| 在线精品亚洲一区二区古装| 亚洲性视频网站| 91伊人国产| 国产91在线|日本| 茄子视频毛片免费观看| 九九九精品成人免费视频7| 97视频精品全国在线观看| 在线播放国产一区| 亚洲欧美日韩精品专区| 久久免费观看视频| 男女男精品视频| 日本a级免费| 欧美在线伊人| 超碰91免费人妻| 欧美啪啪精品| 99伊人精品| a在线观看免费| 午夜性爽视频男人的天堂| 色妞www精品视频一级下载| 91娇喘视频| 亚洲中文字幕在线一区播放| 美女一区二区在线观看| 亚洲成人在线免费| 日韩人妻少妇一区二区| 91黄视频在线观看| 欧美亚洲国产日韩电影在线| 国产欧美专区在线观看| 欧美一区精品| AV不卡无码免费一区二区三区| 国产一区在线观看无码| 成人精品免费视频| 亚洲三级影院|