當前位置:才華齋>計算機>C語言>

C語言指標教學

C語言 閱讀(1.81W)

導語:學習指標是學習C語言中最重要的一環,能否正確理解和使用指標是學生是否掌握C語言的一個標誌。下面就由小編為大家介紹一下C語言指標教學,歡迎大家閱讀!

C語言指標教學

  一、引言

指標是C語言中廣泛使用的一種資料型別,運用指標程式設計是C語言最主要的風格之一。正確而靈活地運用它,可以有效地表示覆雜的資料結構;能動態分配記憶體;能方便地使用字串;有效而方便地使用陣列;在呼叫函式時能得到多於1個的值;並能像組合語言一樣處理記憶體地址,從而變出精練而高效的程式等,這對設計系統軟體是很必要的。掌握指標的應用,可以使程式簡潔、緊湊、高效。指標極大地豐富了C語言的功能。每一個學習和使用C語言的人,都應當深入地學習和掌握指標。可以說,不掌握指標就是沒有掌握C語言的精華。

  二、教學現狀

高職學生的基礎普遍較差,數學與英語基礎較為薄弱,在碰到程式邏輯思維分析,程式程式碼編寫及除錯的過程中,往往會感到困難,這是高職C語言課程教學中的共性問題。學習指標是學習C語言中最重要的一環,能否正確理解和使用指標是學生是否掌握C語言的一個標誌。同時,指標也是C語言中最為困難的一部分,學生很難正確理解基本概念,就指標的教學談談自己的想法。

  三、教學方法

1、情景創設教學法。課堂教學是獲取知識和技能的主要陣地,應當成為培養學生獨立思考的搖籃。情景創設教學方法把學習設定到簡單的、有意義的問題情境中,學生通過互相合作來解決這些問題,發現隱含於問題背後的科學知識,形成讓學生掌握解決問題的技能和提高自主學習的能力。例如,講解指標的基本概念,計算機中的所有資料都是順序存放在儲存器中的。一般把儲存器中的一個位元組稱為一個記憶體單元,不同資料型別的值所佔用的記憶體單元數亦不同。為了正確地訪問這些記憶體單元。記憶體單元的編號也叫地址,通常也把這個地址稱為指標。記憶體單元的指標和記憶體單元的內容是兩個不同的概念。為讓學生掌握並理解記憶體單元的指標和記憶體單元的內容,我採用了情景創設的教學方法。我們到銀行去存、取款時,銀行工作人員將根據我們的賬號去查詢存款單,找到之後在存單上寫入存款、取款的金額。在這裡,賬號就是存單的指標,存款數就是存單的內容。這樣就能讓學生明白記憶體單元的指標和記憶體單元的`內容之間的關係了。

2、主動探索、協作學習教學法。根據已有資訊,從不同角度、不同方向思考問題,從多方面尋求多樣性答案的一種思維形式,是主動探索的教學方法。為走出傳統教學中的泥灘,教師應轉變教學觀念,砸碎應試教育的模式和框架,克服單純傳授知識的傾向,注重順向思維、逆向思維、多向思維的訓練,培養學生思維的深刻性、批判性和創新性。具體來講,就是要通過挖掘教材中能一題多解、一法多用、一題多變的教學內容,來引導學生主動探索,使他們的思考朝多種方向擴散,提出各種設想、多種解答。在指標教學中還可以進行協作學習中培養學生們的思維。協作學習是在解題中,儘可能利用自己已有的知識和經驗與同學一起討論,將不同的方法進行比較,從中確定出最佳方案。在教學中,引導學生從不同方向利用其他學科的理論,開闊思路,找出解決問題的多種方法。然後在眾多的解法中,經過歸納、判斷和比較,最終得出一個最優化的結論。比如在教學生如何通過指標引用陣列元素,先請學生協作學習開闊思路用不同方法編寫“輸出陣列中的全部元素”程式。

方法一:下標法

方法二:通過陣列名計算陣列元素地址,找出元素的值

方法三:用指標變數指向陣列元素

通過該教學方法,這個知識點學生掌握得很好,找出解決問題的多種方法,能深刻地、高水平地掌握知識,並能把這些知識廣泛應用到學習新知識的過程中,舉一反三,提高了對知識的理解能力,使學習活動順利進行。

3、遊戲案例匯入教學法

在指標教學中通過遊戲案例匯入教學法可以營造學生獨立思考的心理氛圍。在分析指向多維陣列的指標和指標變數中的“多維陣列的地址”知識點,我先請同學做遊戲,一個當“排長”,三個當“班長”,十二個當“戰士”,遊戲是:有一個排,下設3個班,每個班有4名戰士。規定排長只管理到班,班長管理戰士。在排長眼裡只有第0、1、2班。排長從第0班的起始位置走到第1班的起始位置,看來只走了一步,但實際上他跳過了4名戰士。為了找到某一班內某一個戰士,必須給兩個引數,即第i班第j個戰士,先找到第i班,然後由該班班長在本班範圍內找第j個戰士。這個戰士的位置就是a[i]+i.。開始時班長面對第0個戰士。注意,排長和班長的初始位置是相同的。但他們的“指向”是不同的。排長“指向”班,他走一步就跳過1個班,而班長“指向”戰士,走一步只是指向下一個戰士。可以看到排長是“巨集觀管理”,只管班,班長則是“微觀管理”,管理到戰士。如果要找第1班第2個戰士,則先由排長找到第1班的班長,然後,由班長在本班範圍內找到第2個戰士。二維陣列a相當於排長,每一行(即一維陣列a[0]、a[1]、a[2])相當於班長,每一行中的元素(如a[1][2])相當於戰士。

請同學們開啟書,仔細看插圖,邊看邊想:誰是排長?班長在哪兒?管多少個戰士?

這段遊戲匯入把貫穿全文的線索用三個問題串起來,讓學生從靜態的圖中找答案,思考、討論結果。這一過程學生的思維也是最活躍的,對問題的思考是深入而全方位的,這些問題激發了學生們的心理驅動力,在討論爭議中,讓學生迸發出創新思維的火花。

  四、總結

指標是C語言的精髓,不能熟練地使用指標,就不算學會了C語言。在教學過程中我採用多種新型教學方法與學習方法的綜合運用,能讓學生掌握指標程式設計,編寫高質量的程式。從實踐看,學生學習指標的興趣的培養,並不是一朝一夕,一蹴而就的,這需要我們教師不斷地摸索,努力地更新傳統的教學觀念,適時地抓住課堂教學的點滴契機,啟發引導,讓學生在學習中不斷創造,在創造中不斷學習。