姚夢夢
指針數(shù)據(jù)類型是C語言課程的重點,使用指針可以通過操作計算機的內(nèi)存來實現(xiàn)一些特定的功能,可以方便地表達(dá)復(fù)雜的數(shù)據(jù)結(jié)構(gòu),使程序簡潔、緊湊和高效。指針數(shù)據(jù)類型也是C語言課程的難點,它與數(shù)據(jù)物理存儲密切相關(guān),概念較復(fù)雜,應(yīng)用廣泛而且涉及的概念多,所以學(xué)生較難入門,學(xué)習(xí)中容易產(chǎn)生畏難情緒。本文對實際教學(xué)中的一些策略、方法和思路進行介紹,供C語言教學(xué)參考,不妥之處,歡迎指正。
一、仔細(xì)規(guī)劃和控制教學(xué)內(nèi)容,簡化、突出基本概念
指針一章的教學(xué)內(nèi)容較多,許多概念只能在今后應(yīng)用項目中才能深刻體會,課堂教學(xué)如果灌輸太多內(nèi)容,學(xué)生在較短時間內(nèi)很難接受那些最基礎(chǔ)的內(nèi)容,學(xué)習(xí)后容易混淆,又會很快遺忘,相反,如果牢固掌握指針較少的一些基本概念,學(xué)生會更容易理解與指針相關(guān)的其它內(nèi)容,所以教學(xué)內(nèi)容不能盲目貪多求全,應(yīng)當(dāng)重點突出、有詳有略?;谶@一思路,為了在較短時間使學(xué)生了解、理解并初步掌握指針的一般概念和應(yīng)用,在考慮了實際應(yīng)用及對后續(xù)課程影響的情況下,我們從實用的角度,結(jié)合學(xué)生的實際情況,重新調(diào)整指針一章的教學(xué)內(nèi)容,目標(biāo)主要是抓住基本的概念、盡量減少概念的數(shù)量,刪除一些概念復(fù)雜、初學(xué)者難掌握且并不常用的內(nèi)容,如二維數(shù)組的地址和指向行數(shù)組的指針以及指向函數(shù)的指針。
二、抓住重點內(nèi)容的主線,使概念平滑過渡,以便學(xué)生類比掌握
在調(diào)整教學(xué)內(nèi)容的基礎(chǔ)上,教學(xué)中還應(yīng)當(dāng)抓住重點內(nèi)容的主線。經(jīng)過分析,各章節(jié)都可以按照“地址-指針-指針變量-數(shù)據(jù)訪問-指針作為函數(shù)參數(shù)”這條主線組織教學(xué)。使學(xué)生的學(xué)習(xí)建立在前面知識的基礎(chǔ)上,以便學(xué)習(xí)時能夠自然過渡。
變量的地址一指向變量的指針一指向變量的指針變量一使用指向變量的指針進行數(shù)據(jù)訪問一指向變量的指針作為函數(shù)的參數(shù)。授課前可先補充物理存儲器的概念(內(nèi)存,內(nèi)存地址),介紹高級語言的存儲器概念(變量、變量名、變量的地址、變量值),在講清地址的基礎(chǔ)上自然地引入指針、變量的指針和指針變量的概念以及定義、初始化、賦值、引用;然后介紹系統(tǒng)訪問變量(內(nèi)存空間)的兩種方式。將指針作為函數(shù)參數(shù)作為指針簡單應(yīng)用的例子進行介紹,初步體現(xiàn)指針強大的功能,并激發(fā)學(xué)生學(xué)習(xí)指針的興趣,訓(xùn)練學(xué)生有意識利用指針解決問題的習(xí)慣。讓學(xué)生了解指針作為參數(shù)只是指針的一種應(yīng)用,簡化對基本概念講述。同樣,數(shù)組與指針部分的內(nèi)容也可有一條主線,即一維數(shù)組的地址一指向一維數(shù)組的指針一指向一維數(shù)組的指針變量一使用指向一維數(shù)組的指針進行數(shù)據(jù)的訪問一指向一維數(shù)組的指針作為函數(shù)參數(shù)。將字符串指針作為指向一維數(shù)組的指針的特例進行介紹。同樣按照字符串(字符數(shù)組)的地址一指向字符串的指針一指向字符串的指針變量使用指向字符串的指針進行數(shù)據(jù)的訪問一指向字符串的指針作為函數(shù)參數(shù)。
三、安排相對更多且足夠的教學(xué)時間
考慮到指針一章的重要地位和教學(xué)難度,為加深學(xué)生對基本概念理解,應(yīng)適當(dāng)安排較多的教學(xué)時間,以便講清、講透基本內(nèi)容,精講例題以及引導(dǎo)學(xué)生積極參與。在教學(xué)中,我們的策略是始終將基本概念與應(yīng)用示例緊密結(jié)合,由淺入深地、反復(fù)地對基本概念進行強化。如果受時間限制,那么寧可抓住一些重要基礎(chǔ),省略一些高級應(yīng)用的知識點,讓學(xué)生在作業(yè)或上機實踐的環(huán)節(jié)中逐步掌握指針的應(yīng)用。通過這種教學(xué)方法,學(xué)生基本能夠與教師思路同步,從而參與到課堂教學(xué)中來,提高學(xué)習(xí)效率。
四、注意指針數(shù)據(jù)類型與一般數(shù)據(jù)類型的共性,采用類比、對比教學(xué)
指針涉及數(shù)據(jù)的物理存儲,概念間接不直觀、涉及知識點多,應(yīng)用靈活且復(fù)雜,很容易出錯,導(dǎo)致學(xué)生掌握困難,學(xué)習(xí)時容易產(chǎn)生畏難情緒,注意力不集中,甚至放棄學(xué)習(xí)。在講授指針基本概念時先簡要介紹指針的重要性后,即可轉(zhuǎn)入對指針基本概念的介紹,讓學(xué)生知道指針就是內(nèi)存單元的地址,也就是說,要讓學(xué)生知道指針數(shù)據(jù)、指針變量和一般數(shù)據(jù)、變量沒有本質(zhì)區(qū)別,只不過指針變量中存放的數(shù)據(jù)是地址數(shù)據(jù)而已,實際上指針就是地址。在初步介紹內(nèi)存、變量、變量名、變量地址、指針、指針變量概念的之后,學(xué)生可以了解到指針變量是變量的一種,其定義方式也與一般變量的定義完全相同,隨后介紹指針常量的書寫和指針變量的定義、初始化以及賦值,最后介紹指針對內(nèi)存空間的訪問。通過例題說明變量(或內(nèi)存空間)的訪問方法,通過變量名或地址,讓學(xué)生熟悉通過指針訪問變量(或內(nèi)存空間)的方式。在教學(xué)中始終貫穿指針數(shù)據(jù)就是地址數(shù)據(jù)的概念,對比指針類型和一般數(shù)據(jù)類型的共性,讓學(xué)生學(xué)習(xí)時感到指針數(shù)據(jù)和一般數(shù)據(jù)類型一樣,并不難學(xué)。在指針教學(xué)中要特別注意策略,不要刻意強調(diào)指針的學(xué)習(xí)難度,以免使學(xué)生產(chǎn)生畏難情緒。
五、多用統(tǒng)一、規(guī)范的圖示分析問題、解決問題
指針概念比較抽象,在教學(xué)中應(yīng)當(dāng)注意多用圖示分析來解決問題。使用圖示可以更加形象地表達(dá)問題,但值得注意的是教師應(yīng)當(dāng)仔細(xì)規(guī)劃圖示的內(nèi)容,確保使用統(tǒng)一、規(guī)范、一致的圖示進行教學(xué)。規(guī)范、一致的圖示使學(xué)生感到基本概念并不復(fù)雜,內(nèi)容也不多,自己也可以分析。相反,隨意的圖示容易使學(xué)生感到雜亂無章,概念繁多且混亂。所以要讓學(xué)生習(xí)慣繪制規(guī)范的圖示來解決問題,這對提高學(xué)生獨立分析、解決問題的能力有很大幫助。例如:①在介紹內(nèi)存、變量、變量名、變量(內(nèi)存)地址時就開始使用變量圖示,以后涉及這些概念時,反復(fù)引用統(tǒng)一的圖示進行表達(dá)和分析,加深學(xué)生對這些補充知識概念的理解。②在介紹指針和函數(shù)應(yīng)用中繪制變量圖示使學(xué)生更容易明白C函數(shù)本質(zhì)是傳值調(diào)用,傳址只是其中的特例,地址值的傳遞仍然是單向的,但由于主調(diào)函數(shù)、被調(diào)函數(shù)使用同樣的內(nèi)存地址,才實現(xiàn)了在被調(diào)函數(shù)中可以對主調(diào)函數(shù)內(nèi)存空間(或變量)的修改。
六、注意學(xué)生反應(yīng),合理安排作業(yè)和上機實踐
在教學(xué)中應(yīng)當(dāng)更加注意學(xué)生反映,教師應(yīng)多與學(xué)生交流,注意控制好教學(xué)節(jié)奏。例如老師板書程序時讓同學(xué)也參與其中,引導(dǎo)學(xué)生積極參與,提高學(xué)生的學(xué)習(xí)積極性及學(xué)習(xí)興趣。指針與其它章節(jié)比較,具有較多的概念和內(nèi)容,學(xué)習(xí)時容易混淆,所以有必要進行適當(dāng)?shù)木毩?xí),指針教學(xué)應(yīng)當(dāng)在學(xué)完每個知識點后,就安排幾個課堂小作業(yè)對所學(xué)內(nèi)容加以鞏固,作業(yè)規(guī)模要小且盡量利用學(xué)生已經(jīng)掌握的算法,以便學(xué)生能夠集中精力,能夠在比較輕松的環(huán)境中逐步掌握指針的基本概念及應(yīng)用。除了安排幾個隨堂小作業(yè)之外,還應(yīng)為學(xué)生安排時間進行上機調(diào)試、實踐,以幫助學(xué)生更好地掌握和理解學(xué)習(xí)內(nèi)容。