陳冰川
提前介入法在C語(yǔ)言指針教學(xué)中的應(yīng)用
陳冰川
(廣東財(cái)經(jīng)大學(xué),廣東 廣州 510320)
C語(yǔ)言程序設(shè)計(jì)是所有計(jì)算機(jī)及其相關(guān)專業(yè)課程中的一門(mén)重要基礎(chǔ)課,而指針又是該課程的重點(diǎn)及難點(diǎn),也是其他語(yǔ)言中理解引用型變量的基礎(chǔ)。文章分析了指針成為課程難點(diǎn)的原因,并在教學(xué)中采用了提前介入法,在整個(gè)教學(xué)過(guò)程中,提前將與指針有關(guān)的知識(shí)有機(jī)地融入到不同章節(jié),使學(xué)生在整個(gè)學(xué)習(xí)過(guò)程中逐步深化指針的概念,并了解其特點(diǎn)和作用,最終在指針一章時(shí)再進(jìn)行梳理總結(jié)。通過(guò)教學(xué)實(shí)踐發(fā)現(xiàn),教學(xué)中采用提前介入法,使學(xué)生對(duì)于指針的理解和掌握程度得到提升,起到了較好的實(shí)踐效果。
C語(yǔ)言;指針;編程語(yǔ)言教學(xué)
C 語(yǔ)言程序設(shè)計(jì)在計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言中占有重要的一席之地,它以語(yǔ)法簡(jiǎn)潔緊湊、程序精煉、運(yùn)算符和數(shù)據(jù)結(jié)構(gòu)豐富、編程靈活、可移植性好而著稱[1]。而指針是其精髓和靈魂,是 C 語(yǔ)言中最具魅力和最富活力的部分[2],同時(shí)也是公認(rèn)的教學(xué)難點(diǎn)[3]。C 語(yǔ)言通過(guò)指針來(lái)實(shí)現(xiàn)訪問(wèn)硬件資源、動(dòng)態(tài)分配和回收內(nèi)存空間、降低函數(shù)調(diào)用中參數(shù)傳遞的開(kāi)銷、減少使用全局變量、實(shí)現(xiàn)函數(shù)回調(diào)等功能。沒(méi)有指針的 C 語(yǔ)言不可能進(jìn)行任何有實(shí)際意義的編程[2]。而且指針的思想并不是只在C語(yǔ)言中有意義,在JAVA、Python等語(yǔ)言中雖然取消了指針,但是其“引用型”變量的很多性質(zhì)和應(yīng)用與指針變量非常相似,掌握好了指針的概念,對(duì)于后續(xù)其他語(yǔ)言的學(xué)習(xí)同樣具有重要意義。但是在實(shí)際教學(xué)實(shí)踐中發(fā)現(xiàn),高校學(xué)生尤其是低年級(jí)學(xué)生或是非計(jì)算機(jī)類學(xué)生,在對(duì)計(jì)算機(jī)相關(guān)基礎(chǔ)沒(méi)有了解的情況下,對(duì)于指針的理解和使用是具有一定困難的,因此有必要采取措施對(duì)指針的教學(xué)進(jìn)行改進(jìn),提升學(xué)生對(duì)其的理解與掌握程度。
按照目前的教學(xué)規(guī)律,指針內(nèi)容往往是放在比較靠后的階段進(jìn)行介紹的,由于前面如數(shù)據(jù)存儲(chǔ)方式、變量、數(shù)組、函數(shù)等內(nèi)容并不涉及指針,后面章節(jié)再談起指針,會(huì)使學(xué)生產(chǎn)生知識(shí)認(rèn)知上的錯(cuò)位和斷層。如果在講授以上內(nèi)容時(shí),提前加入與指針相關(guān)的概念,到了指針一章時(shí)將會(huì)使學(xué)生作為一個(gè)體系去理解,接受度將會(huì)大為提高。
基于以上目的,筆者結(jié)合自身學(xué)習(xí)和教學(xué)的經(jīng)驗(yàn)提出了提前介入的教學(xué)方法,用于在C語(yǔ)言程序設(shè)計(jì)教學(xué)中,即在C語(yǔ)言教學(xué)過(guò)程中,每一章根據(jù)其特點(diǎn),從不同側(cè)面適當(dāng)?shù)匾胫羔樀母拍?、使用方式和基本原理。該方法已?jīng)應(yīng)用于實(shí)踐并取得了較好的成果。
筆者教學(xué)使用的教材為清華大學(xué)出版社出版,由譚浩強(qiáng)主編的《C語(yǔ)言程序設(shè)計(jì)》(第三版),根據(jù)教材的章節(jié)特點(diǎn)逐步引入指針的定義、內(nèi)存存儲(chǔ)方式、基本原理、使用方法等。由于指針相關(guān)知識(shí)為教材一章的內(nèi)容,如果在某節(jié)課涉及過(guò)多,會(huì)導(dǎo)致無(wú)法按時(shí)完成教學(xué)任務(wù),也會(huì)為學(xué)生的學(xué)習(xí)帶來(lái)負(fù)擔(dān),因此在每章提前介入指針概念時(shí),基本原則是:適當(dāng)涉及、點(diǎn)到即止、不求全懂、只留印象。
提前介入的方法主要目的是讓學(xué)生在正式進(jìn)行指針一章的學(xué)習(xí)時(shí),對(duì)于指針已經(jīng)有一個(gè)初步的認(rèn)識(shí),并且了解了指針引入的目的,能夠帶來(lái)的好處,它和變量、變量地址之間的關(guān)系等。到了正式進(jìn)行指針一章的講授時(shí),學(xué)生就能夠比較自然地掌握和了解指針的特點(diǎn)和用法。
本文以譚浩強(qiáng)主編的清華出版社出版的《C語(yǔ)言程序設(shè)計(jì)(第3版)》為基礎(chǔ),分別以數(shù)據(jù)的存儲(chǔ)與運(yùn)算、順序結(jié)構(gòu)、利用數(shù)組處理批量數(shù)據(jù)和函數(shù)實(shí)現(xiàn)模塊化程序設(shè)計(jì)四章為基礎(chǔ),介紹如何在這些章節(jié)中引入指針的概念以及講授的重點(diǎn)。
本章的主要內(nèi)容是介紹數(shù)據(jù)在內(nèi)存中如何存儲(chǔ),以及按照不同數(shù)據(jù)類型(包括整型、實(shí)型和字符型)介紹變量、常量的不同存儲(chǔ)方式和表現(xiàn)形式,最后介紹算數(shù)表達(dá)式和相關(guān)的C語(yǔ)言表達(dá)式。本章關(guān)鍵是對(duì)于變量和常量的理解和掌握,而指針對(duì)于變量的存儲(chǔ)模式具有促進(jìn)作用,因此本章可自然地引入指針和指針變量的概念。
首先,在本章第一節(jié)“數(shù)據(jù)在計(jì)算機(jī)中是怎樣存儲(chǔ)的”中,強(qiáng)化計(jì)算機(jī)按字節(jié)存儲(chǔ),字節(jié)的編號(hào)就是地址,地址能夠指出數(shù)據(jù)存儲(chǔ)的位置便于查找,由此可引出地址還叫做“指針”,讓學(xué)生對(duì)于內(nèi)存存儲(chǔ)有一個(gè)初步概念,了解到通過(guò)地址或指針就可以找到要存儲(chǔ)(讀?。?shù)據(jù)的位置。
然后,在本章第二節(jié)“整型數(shù)據(jù)的運(yùn)算與分析”中,介紹什么是變量時(shí)將變量名、變量地址、存儲(chǔ)單元和變量值,通過(guò)校園的某棟樓的名稱(如:第一教學(xué)樓)、所在校內(nèi)地址(如某區(qū)某棟)、大樓本身和樓內(nèi)的學(xué)生分別做一一對(duì)應(yīng),深化學(xué)生對(duì)于變量名、變量地址的理解。在此基礎(chǔ)上,講授賦值的過(guò)程,即編譯系統(tǒng)根據(jù)變量名所代表的地址,找到存儲(chǔ)單元,將所賦之值存入。
(1)引導(dǎo)學(xué)生思考,如果定義了一個(gè)整型變量x其對(duì)應(yīng)的地址為100000,還有另外一個(gè)變量p(此處忽略如何定義)保存了變量x的地址100000,請(qǐng)學(xué)生設(shè)想如果想給100000的地址對(duì)應(yīng)的存儲(chǔ)單元中存儲(chǔ)一個(gè)整型常量10,如何處理。
(2)進(jìn)一步引導(dǎo)學(xué)生了解可以通過(guò)x=10進(jìn)行賦值,即告訴系統(tǒng)將10存儲(chǔ)到變量x對(duì)應(yīng)的地址中。
(3)再進(jìn)一步提示學(xué)生p也存儲(chǔ)了x的地址,如何告知系統(tǒng)將10存儲(chǔ)到p所保存的地址對(duì)應(yīng)的存儲(chǔ)空間呢?注意p=10是錯(cuò)誤的,按照x=10的處理規(guī)則會(huì)發(fā)現(xiàn)這樣的語(yǔ)句只會(huì)將10存儲(chǔ)到p對(duì)應(yīng)的地址(而不是存儲(chǔ)的地址)中。
(4)最后告訴學(xué)生,c語(yǔ)言通過(guò)符號(hào)“*p”來(lái)代表訪問(wèn)p保存的地址空間,而變量p就像一個(gè)“指針”指向了x對(duì)應(yīng)的內(nèi)存空間,因此p就是后面將要學(xué)習(xí)到的“指針變量”即:用來(lái)存儲(chǔ)指針(地址)的變量。如果想要將x的地址賦值到p變量中,由于編程期間是無(wú)法了解該變量在運(yùn)行時(shí)被分配的地址,不能直接給p賦值100000,只能通過(guò)p=&x的方法賦值,進(jìn)而介紹取地址的符號(hào)。
到此基本將指針和指針變量,以及它的作用講清楚了。但是由于不是系統(tǒng)地進(jìn)行講授,為了保證學(xué)生學(xué)習(xí)的完整性,此處一般會(huì)強(qiáng)調(diào)并總結(jié),無(wú)論學(xué)生聽(tīng)懂與否,都沒(méi)有關(guān)系,只要了解了地址還叫指針,用來(lái)存儲(chǔ)地址的變量就叫做指針變量即可,以后還會(huì)繼續(xù)涉及相關(guān)內(nèi)容。
本章主要介紹算法和最基本的編程結(jié)構(gòu)順序結(jié)構(gòu),同時(shí)介紹了賦值語(yǔ)句和輸入輸出語(yǔ)句。因此本章將會(huì)在講授賦值語(yǔ)句和格式輸入輸出語(yǔ)句時(shí)提前介入指針的相關(guān)概念。
(1)賦值語(yǔ)句。
在賦值語(yǔ)句的講授過(guò)程中,在講授了賦值語(yǔ)句的預(yù)算順序以及作用后,可再次向?qū)W生提示,當(dāng)一個(gè)整型變量x在賦值號(hào)左右兩邊所代表的含義之間的細(xì)微區(qū)別:在左邊表示將賦值號(hào)右面的表達(dá)式的值賦值到x所代表的內(nèi)存存儲(chǔ)空間中,而在右邊則表示將x所代表的的內(nèi)存儲(chǔ)空間的值賦值到賦值號(hào)左邊的變量中。一個(gè)表示x對(duì)應(yīng)的存儲(chǔ)空間,另一個(gè)表示x對(duì)應(yīng)的存儲(chǔ)空間的值。在這樣的解釋前提下再次提出上一章提及的指針內(nèi)容:
①請(qǐng)學(xué)生思考:如果有一個(gè)變量p用來(lái)存儲(chǔ)x的地址,如果想向x賦值10,如果允許表達(dá)式p=10在c語(yǔ)言中運(yùn)行,會(huì)帶來(lái)什么結(jié)果?能否達(dá)到向x所代表的地址的存儲(chǔ)空間寫(xiě)入10?
②告訴學(xué)生按照賦值語(yǔ)句的賦值規(guī)則,上述結(jié)果只會(huì)給p對(duì)應(yīng)的存儲(chǔ)空間賦值10,而不會(huì)賦值到x對(duì)應(yīng)的存儲(chǔ)空間中,因此需要使用“*p=10”的方法進(jìn)行賦值。此處再次提醒學(xué)生對(duì)于指針的含義以及*p的含義。
通過(guò)以上的講授既讓學(xué)生進(jìn)一步了解賦值語(yǔ)句的作用,也使學(xué)生對(duì)于指針的操作與應(yīng)用有了進(jìn)一步的認(rèn)識(shí)。
(2)格式輸入輸出語(yǔ)句。
在格式輸入輸出函數(shù)的講授中,最容易出錯(cuò)的就是在scanf函數(shù)中變量參數(shù)要加取地址的符號(hào)&,此處可以再次引入指針相關(guān)的介紹。相關(guān)講解內(nèi)容如下:
①講授scanf(“%d”,&x)函數(shù)的作用,是將輸入的整型值存儲(chǔ)到x對(duì)應(yīng)地址的存儲(chǔ)單元中。
②簡(jiǎn)單告知學(xué)生當(dāng)變量作為函數(shù)參數(shù)時(shí)相當(dāng)于把變量值傳入函數(shù),并未傳入具體地址,從而導(dǎo)致函數(shù)無(wú)法獲取變量的值。
③為了能夠?qū)⒌刂穫魅牒瘮?shù),則需要提供一個(gè)操作符用于返回變量的地址,c語(yǔ)言用“&”表示取地址的操作。
④在上機(jī)實(shí)驗(yàn)課時(shí),可以讓學(xué)生通過(guò)輸出語(yǔ)句輸出x的值和&x的值,同時(shí)指導(dǎo)學(xué)生如何通過(guò)開(kāi)發(fā)環(huán)境查看變量所在的內(nèi)存,以及存儲(chǔ)的數(shù)據(jù)。
通過(guò)上述內(nèi)容的講述,既使學(xué)生了解了輸出函數(shù)的本質(zhì)和變量在內(nèi)存中存儲(chǔ)的方式,還能夠進(jìn)一步了解去地址符號(hào)的作用,訓(xùn)練了學(xué)生上機(jī)調(diào)試代碼的能力。
由于選擇結(jié)構(gòu)和循環(huán)結(jié)構(gòu)兩章主要是介紹程序結(jié)構(gòu),與內(nèi)存存儲(chǔ)和變量關(guān)系不大,這兩章不再引入指針相關(guān)知識(shí),將學(xué)生的精力全部放到這兩章容易錯(cuò)誤的知識(shí)點(diǎn)上,如邏輯表達(dá)式的運(yùn)算,循環(huán)的邊界條件等。而到了本章主要介紹數(shù)組時(shí),就可以再次將指針相關(guān)的知識(shí)介入,加深學(xué)生的理解。本章主要從數(shù)組的定義,以及內(nèi)存存儲(chǔ)方式進(jìn)行指針相關(guān)知識(shí)的介入。
(1)一維數(shù)組定義。
在講授到一維數(shù)組定義時(shí),在講解了一維數(shù)組的定義后編譯系統(tǒng)會(huì)根據(jù)定義的數(shù)組長(zhǎng)度在內(nèi)存中申請(qǐng)連續(xù)的相應(yīng)大小的空間后,再次講解指針的概念。
①首先讓學(xué)生理解地址的概念,其實(shí)就是一塊連續(xù)存儲(chǔ)空間的首地址,其他地址根據(jù)數(shù)組的類型,依次獲取相關(guān)元素。進(jìn)而讓學(xué)生考慮對(duì)于單個(gè)變量的情況,當(dāng)變量為整型為4個(gè)字節(jié)時(shí),所謂的變量地址其實(shí)也是類似的為這四個(gè)連續(xù)存儲(chǔ)空間的首地址,程序在讀取數(shù)據(jù)時(shí)是根據(jù)首地址依次讀取四個(gè)字節(jié)的內(nèi)容,獲取變量的值。
②強(qiáng)調(diào)每一個(gè)數(shù)組元素都可以當(dāng)做一個(gè)變量看待,即都對(duì)應(yīng)了相應(yīng)的內(nèi)存單元,用整型數(shù)組舉例。例如:
int a[10];
假設(shè)整型占有4個(gè)字節(jié),讓學(xué)生自己推算第i個(gè)元素的地址,即第i個(gè)元素的地址其實(shí)是a+4i。上機(jī)時(shí)通過(guò)內(nèi)存查看和通過(guò)語(yǔ)句:
printf(“%d”,&a[i]);
查看數(shù)組每一個(gè)變量的地址的方式,加深數(shù)組元素地址的印象。
③介紹數(shù)組名代表了數(shù)組的首地址,同時(shí)擴(kuò)展告訴學(xué)生,這里的數(shù)組名是一個(gè)指針常量,引導(dǎo)學(xué)生回憶常量本身是不可以被賦值的。
④再次提前講指針變量p是可以被賦值的例如int x; p=&x; 或者int a[10]; p=a;第一個(gè)賦值表示將x的地址存入指針變量p中,而第二個(gè)賦值表示將數(shù)組a的首地址存入指針變量p中。此處的表達(dá)方式再次說(shuō)明a本身就是一個(gè)指針,所以賦值時(shí)無(wú)需增加取地址符號(hào)“&”。
⑤再次提醒學(xué)生由于p是指針變量可以被賦值,而數(shù)組名a是指針常量,不可以被賦值,即以下代碼是錯(cuò)誤的:
int a[10],b[10];
a=b; //a是指針常量不可以被賦值
⑥告訴學(xué)生以下賦值都是正確的,并且p與q的值是相同的,進(jìn)一步讓學(xué)生了解數(shù)組名就是數(shù)組的首地址,即:假設(shè)p和q都是指針變量,int a[10]; p=a; q=&a[0];
此處不可過(guò)于延展,否則將會(huì)使學(xué)生陷入過(guò)深,忽略了本章的重要內(nèi)容。至此不僅使學(xué)生了解到了數(shù)組名指向數(shù)組的首地址,也再次回憶了變量與常量的區(qū)別,同時(shí)涉及了第八章指針部分的指向數(shù)組的指針的內(nèi)容。
(2)二維數(shù)組的定義。
在二維數(shù)組的講授中,關(guān)鍵要突出每一維的含義,以及各自代表的意義。具體講授內(nèi)容如下:
①講授邏輯上大家認(rèn)為的二維數(shù)組就是一個(gè)二維表,而實(shí)際內(nèi)存存儲(chǔ)只是簡(jiǎn)單的連續(xù)空間的存儲(chǔ)。例如,int a[2][3]邏輯存儲(chǔ)是2行3列,而實(shí)際存儲(chǔ)就6個(gè)連續(xù)的內(nèi)存空間,同樣讓學(xué)生自己推出每個(gè)元素地址的計(jì)算公式:a+4*2i+4j。上機(jī)實(shí)驗(yàn)課通過(guò)內(nèi)存查看進(jìn)一步理解二維數(shù)組的存儲(chǔ)模式。
②讓學(xué)生考慮a,a[0]和&a[0][0]之間的關(guān)系,都是指向首地址,此處不宜多講,因?yàn)樯婕爸羔樧兞考右坏闹迪鄬?duì)難懂,為了防止學(xué)生陷入過(guò)深,此處提到即可。
通過(guò)此章關(guān)于指針相關(guān)的內(nèi)容的提前講授,讓學(xué)生對(duì)于指針在數(shù)組中的應(yīng)用有了一個(gè)初步認(rèn)識(shí),為第八章數(shù)組與指針一節(jié)做好鋪墊。
本章主要是介紹C語(yǔ)言的函數(shù)的定義、聲明和使用,并通過(guò)變量的周期和生存期說(shuō)明變量在函數(shù)中的特性。結(jié)合本章內(nèi)容,可以簡(jiǎn)要地講解指針作為函數(shù)參數(shù)的內(nèi)容。
(1)函數(shù)的定義,在本節(jié)中主要提示學(xué)生代碼要運(yùn)行同樣需要載入內(nèi)存,也同樣要有地址,而函數(shù)名實(shí)際上就是函數(shù)指令存儲(chǔ)的首地址也叫“函數(shù)入口”。
(2)函數(shù)的嵌套調(diào)用,本節(jié)主要通過(guò)板書(shū)將每個(gè)函數(shù)畫(huà)作一個(gè)獨(dú)立的空間,當(dāng)該函數(shù)被調(diào)用時(shí),動(dòng)態(tài)地在其空間內(nèi)將函數(shù)中的變量,以及形參申請(qǐng)空間,并重點(diǎn)說(shuō)明將實(shí)參的值賦值到形參對(duì)應(yīng)的空間中。當(dāng)該函數(shù)調(diào)用結(jié)束后,直接擦除剛剛申請(qǐng)的變量,直觀地讓學(xué)生體會(huì)到,函數(shù)內(nèi)部的變量的值除了通過(guò)return語(yǔ)句,無(wú)法被傳遞至函數(shù)之外;也認(rèn)識(shí)到函數(shù)參數(shù)之間是通過(guò)值傳遞,而無(wú)法通過(guò)在函數(shù)內(nèi)改變實(shí)參的值。
(3)數(shù)組作為函數(shù)參數(shù),主要講解數(shù)組名作為參數(shù),數(shù)組名與變量名的關(guān)系。
①讓學(xué)生回憶一個(gè)函數(shù)如何返回一個(gè)值,并讓學(xué)生思考如果有多個(gè)值需要返回需要如何處理?進(jìn)而告知C語(yǔ)言中有幾種返回方式,一是接下來(lái)要學(xué)習(xí)的多個(gè)全局變量可以把函數(shù)中的若干值返回;第二是后面章節(jié)要學(xué)的通過(guò)返回結(jié)構(gòu)體返回多個(gè)值;最后是通過(guò)指針將地址告訴函數(shù),將結(jié)果直接存儲(chǔ)在相應(yīng)內(nèi)存中,從而起到返回若干值的效果。
②理解函數(shù)形參test(int a[10])和調(diào)用函數(shù)中數(shù)組定義int a[10]樣子一樣,但是意義完全不同,作為形參的類似數(shù)組定義的a實(shí)際上是一個(gè)指針變量,說(shuō)明是一個(gè)指向由10個(gè)元素組成的整型數(shù)組的首地址的指針變量,而在調(diào)用程序中定義的則是一個(gè)指針常量指代數(shù)組的首地址,通過(guò)值傳遞將常量的值傳給了指針變量。此處點(diǎn)到即止不宜講得過(guò)深,由于并未系統(tǒng)地進(jìn)行講授,過(guò)于深入容易讓學(xué)生混亂,只需了解到它們是有區(qū)別的即可。
③進(jìn)一步解釋為什么通過(guò)數(shù)組名作為函數(shù)的參數(shù)可以將值帶出函數(shù)(本節(jié)前已經(jīng)讓學(xué)生了解了函數(shù)內(nèi)部的值是不能被函數(shù)以外的代碼訪問(wèn)的)。由于數(shù)組名代表了數(shù)組所在的地址(如②所述),而函數(shù)用數(shù)組名作為參數(shù),也就是在函數(shù)中指明了值需要保存的位置,直接將數(shù)值保存至函數(shù)之外了。
通過(guò)上述的講解讓學(xué)生進(jìn)一步了解了指針在函數(shù)參數(shù)中所起的作用,并加深了為什么函數(shù)無(wú)法改變實(shí)參的值的原理。對(duì)于第八章講解“指針變量作為函數(shù)參數(shù)”一節(jié)打下鋪墊。
通過(guò)以上課程對(duì)于指針的提前介入,根據(jù)課程實(shí)際內(nèi)容可以發(fā)現(xiàn)對(duì)于指針的提前介入不僅可以讓學(xué)生能夠提前接觸到指針的概念,便于后續(xù)的學(xué)習(xí),而且還可以加深對(duì)應(yīng)章節(jié)的一些原理的認(rèn)識(shí),更能夠掌握C語(yǔ)言的精髓。如果只是在指針一章,再將前面的內(nèi)容重復(fù)補(bǔ)充,很難讓學(xué)生有一個(gè)清楚的認(rèn)識(shí),因?yàn)榇髮W(xué)生的學(xué)習(xí)規(guī)律與中學(xué)不同,課后復(fù)習(xí)的習(xí)慣在減弱,如果在課堂授課時(shí)沒(méi)有第一時(shí)間講清楚,相當(dāng)一部分學(xué)生將會(huì)在后續(xù)的學(xué)習(xí)中淡忘,效果將大打折扣,因此在學(xué)習(xí)相關(guān)知識(shí)時(shí)應(yīng)提前提及,在真正學(xué)習(xí)相關(guān)內(nèi)容時(shí),學(xué)生更容易接受和理解。
指針作為C語(yǔ)言的一個(gè)重要特征和精髓,其實(shí)貫穿了整個(gè)C語(yǔ)言的知識(shí)之中,如果不提前接觸,對(duì)于很多原理只能是死記硬背,難以融會(huì)貫通,因此本文提出了提前介入法,進(jìn)行C語(yǔ)言中的指針知識(shí)點(diǎn)的教學(xué),不僅使學(xué)生更深刻地認(rèn)識(shí)到了當(dāng)前所學(xué)知識(shí)的原理,也對(duì)于后續(xù)指針章節(jié)的學(xué)習(xí)有了更深的理解。實(shí)踐證明(4個(gè)學(xué)期以上的實(shí)踐教學(xué)),發(fā)現(xiàn)到了指針一章的講解時(shí),學(xué)生的理解和接受程度提高了很多。
在以后的教學(xué)中,需要再深化此種教學(xué),在不影響當(dāng)前課程內(nèi)容理解的同時(shí),更深入地讓學(xué)生提前了解指針,真正地掌握指針,對(duì)于C語(yǔ)言的應(yīng)用更加得心應(yīng)手,并會(huì)進(jìn)一步研究提前介入法在其他課程和知識(shí)講授中的應(yīng)用與實(shí)踐。
[1]張憶文,C 語(yǔ)言指針教學(xué)難點(diǎn)透析[J]. 計(jì)算機(jī)教育,2017(1): 155-161.
[2] 趙帥鋒,胡紹海. 開(kāi)門(mén)見(jiàn)山與循序漸進(jìn): 一種 C 語(yǔ)言指針教學(xué)方法[J]. 計(jì)算機(jī)教育,2017(4): 112-120
[3] 王立柱. 數(shù)據(jù)結(jié)構(gòu)與算法[M]. 北京: 華章出版社,2013.
Application of Advance Intervention Method in C Language Pointer Teaching
C programming language is an important basic course in all computer science and related professional courses, and the pointer is the keynote and difficulty of this course, and it is also the basis for understanding referential variables in other languages. This paper analyzes the reasons why the pointer has become a difficult point of the course, and adopts the advance intervention method in teaching. In the whole teaching process, organically integrate the knowledge related to the pointer into different chapters in advance, so that in the whole learning process students can gradually know the concept of the pointer, understand its characteristics and functions, and finally comb and summarize when teaching the chapter of the pointer. Through the teaching practice, it is found that the advance intervention method in teaching has improved the students' understanding and mastery of the pointer, and has played a good practical effect.
C language; pointer; programming language teaching
G642
A
1008-1151(2022)12-0128-03
2022-10-10
廣東省教育廳特色項(xiàng)目(2017KTSCX074)。
陳冰川(1975-),男,四川達(dá)州人,廣東財(cái)經(jīng)大學(xué)講師,研究方向?yàn)檐浖こ?、人工智能?/p>