C語言范文10篇

時間:2024-01-15 14:11:42

導語:這里是公務員之家根據多年的文秘經驗,為你推薦的十篇C語言范文,還可以咨詢客服老師獲取更多原創文章,歡迎參考。

C語言

C語言教學對策

1引言

在目前的程序設計課程教學中如何突出對學生編程能力的培養,是一個亟待解決的問題。對于計算機專業學生來說,C語言程序設計是一門專業基礎課,對后續專業課程至關重要。然而,國內中職學校該類課程的教學模式仍停留在傳統的模式上,過于注重語句、語法和一些細節,基本上是以高級語言自身的體系為脈絡展開的,沒有把邏輯與編程解題思路放在主體地位上。這些問題是否能夠被很好地解決已成為中職學校計算機教學成敗的關鍵。作為教師,在計算機教學中,應不斷地改變教育觀念,以學生為主體,創造性地組織教學內容,設計教學結構,注重挖掘學生的潛力,從而使學生的計算機學習成為一種自覺自愿的活動,進而使計算機教育的改革不斷推向深入,最終使計算機學習超越課堂空間。為達到這一目的,C語言程序設計應采用如下教學方法。

2強調學習C語言的重要性,激發學生的學習主動性

C語言是目前世界上使用最為廣泛的計算機語言之一,它是一種介于匯編語言與高級語言之間的編程語言。教師可以在第一節C語言課中就讓學生看一下在圖形模式下用C語言繪制出來的、類似WINDOWS的窗口,讓學生感受和體會一下圖形模式下C語言的編程;使他們知道,C語言作為一種計算機編程語言,它是可以在任何一種平臺上編程的,只是接口不同而已。只要找到適合該平臺的編程工具,C語言在WINDOWS下同樣也能充分發揮其特長,從而激發學生的學習積極性和主動性。

3采取粗講和細講的方法

中職學校計算機教學的特點是:知識更新快、內容范圍廣、應用要求高,由此帶來的問題之一就是課時的相對減少。在實際教學工作中,我體會到,要緩解課程內容多和學時相對少的矛盾,就是要將“粗講”和“細講”結合起來,例如:在“C語言程序設計”課的教學中,前面的幾章是一系列規則性、語言的語法要求很強且很瑣碎的內容,如果一開始就按部就班地一條條給學生講解這些規則,常常使學生產生“只見樹木,不見森林”、茫然不知所措的感覺。所以應該先通過一個簡單的C語言程序實例“細講”為什么要制定這些規則,使學生清楚這些規則在程序中的用途,然后對于這些規則“是什么”就可有代表性“粗講”,甚至有些部分可以不講,讓學生邊用邊學。

查看全文

C語言變量理解

一、變量的概念

程序設計就是讓計算機按照一定的指令來進行工作,可以說數據的處理是程序設計的主要任務。那么數據是怎么加入到計算機的內存中呢?計算機最初的功能就是能夠存儲數據并處理數據的機器。那么數據是怎么加入到計算機的內存中呢?在學習程序設計之前,很多學生對計算機的硬件設施都大概已經很熟悉了。計算機的硬件設施中有一個區域是用來存儲數據的,計算機在工作的過程中會頻繁的從這個區域讀入和讀出數據。要想讓計算機按照某些指令(程序)自動工作,首先必須把數據存儲到計算機的存儲空間中。在某種計算機語言中實現這種數據存儲功能的就是變量。變量就是計算機內存中的某一個存儲單元。

二、變量的定義

C語言中變量在使用之前必須先對其進行定義,變量的定義的一般形式如下:【存儲類別】數據類型變量名;其中存儲類別是可以省略的。

1、存儲類別計算機的內存一般分為三個部分:1)程序區;2)靜態存儲區;3)動態存儲區;為了高效的發揮計算機的功能,不同類型的變量存放在不同的內存區域。變量的存儲類別決定了變量中的數據在計算機內存中的存儲位置。C語言中局部變量存放在動態存儲區,全局變量或者靜態變量存放在靜態存儲區。

2、數據類型在用程序處理問題之前,首先必須確定用何種方式描述問題中所涉及到的數據。這個問題在C語言中是由數據類型來決定的。變量的本質表現為在計算機中的存在時間和存儲空間。變量的數據類型是用來決定變量在計算機中占用內存空間的大小。比如:整型數據在TC編譯系統中占用兩個字節的存儲空間。C語言變量的類型不僅確定了數據在計算機內存中的存儲區域的大小,同時確定了該數據能夠參與的各種運算。任何一個C語言的變量必須有確定的數據類型,不管這個變量如何變化,變量的值都必須符合該變量數據類型的規定。

查看全文

C語言循環命令運用

1.C語言的應用

隨著計算機的普及用,越來越多的人感覺到現有的計算機的應用不能滿足越來越多、越來越復雜的事物處理,所以希望自己能夠根據所遇到不同的情況來設計、制作、開發相對靈活的控制程序。這樣既可以滿足個人的需要,又能滿足其它不同的使用用途。C語言是高級語言的基礎,學習計算機語言要從C語言入手,C是面向過程編程的,這樣會把所有的功能包含在幾個(通常是一個)代碼模塊中。便于以后可以通過不同的用途來進行移植,可以對不同的控制項目產生相同的效果。C語言的優點很多,但是現對于其他語言的優點就是可以在多種操作系統下運行。

2.C語言中的循環語句

C語言中的循環語句的作用是為了使同一個事物具有相同的操作,這可以大大減少程序的復雜性,能夠提高程序的運行效率。在日常使用中的問題中有許多具有相同規律的重復動作,因此在程序設計中就要對這些相同的動作,重復使用這些語句。一組被不斷重復使用的語句稱之為循環語句,如果循環的終止條件被觸發,那么就要終止循環。循環語句由兩部分組成,即循環體及循環的終止條件。在C語言中,包含以下循環語句:for、while和doWhile。

分別介紹如下:

1、for循環for語句格式為:for(a;b;c){……}.該語句執行流程如下:①先對a賦初值;②判別b是否滿足給定條件,若其值為真,滿足循環條件,則執行循環體內語句,然后執行c,進入第二次循環,再判別b……;否則判斷b的值為假,不滿足條件,就終止for循環,執行循環體外語句。如例子for(n=1;n<=200;n++){......}:在程序中,for語句括號內的三個值分別為:n=1;n<=200;n++。位置a,n=1是給n賦初值,b是關系表達式,n小于等于200時,a、b、c都為真,則執行{}內的語句,進入下一循環;若n大于200時,b為假,則終止循環。for語句的特殊用法:(1)for判斷語句內三個表達式為空。例for(;;)printf("null");在()內只有兩個分號,無表達式。表示無限循環。這種無限循環適用于菜單選擇程序制作中。(2)沒有{……}的for語句,例:for(;str=='''''''';str++);這種()內的語句只是一個分號,這個for循環是指針str所指流中的前導空格刪除。例:for(t=1;t;)此例在程序中起延長時間作用。通過以上for循環的例子可以看出,不同的for應用對應的是不同的結果。這就需要根據不同的要求來詳細的設計。

查看全文

C語言函數教學

C語言的學習在整個計算機專業甚至非計算機專業的學習中都有舉足輕重的作用。函數的學習在C語言的學習中是具有靈魂作用的一章。根據筆者多年的C語言教學經驗,發現很多學生在進行函數的學習時,遇到很大的困難。很多學生因為函數沒搞清楚,導致整個C語言的水平永遠只停留在入門的階段。分析原因,一是大多課本函數知識的安排很靠后,這樣函數在整個C語言的學習中課時較少;二是我認為大多是教學方法不合理,很多教師過分注重C語言語法知識的學習,沒有注重編程思想的培養。

一、函數的概念函數是一組語句,這組語句可以完成一個獨立的操作,這組語句有一個簡短的名字,程序員可以僅僅利用這個名字完成某個操作。函數的使用,使復雜的程序變得簡單化、條理化、清晰化。在C語言中函數分為兩大類:庫函數、用戶自定義函數。

1、庫函數在編寫程序的過程中往往有一些操作需要頻繁的使用,并且這些操作的代碼實現又有一定的難度。比如數據的輸入、輸出。在C語言中是沒有輸入輸出語句的,由于輸入輸出涉及到多計算機硬件的直接操作,對用戶來說較困難。這些操作往往由編譯系統的開發商提供給用戶。它們都是以獨立程序塊的模式出現,并且存在于編譯系統的某個文件中,這就是庫函數。比如printf(),scanf()。它們是由編譯程序根據一般用戶的需要編制并提供給用戶使用的一組程序代碼。C語言的庫函數極大地方便了用戶,同時也補充了C語言本身的不足。事實上,在編寫C語言程序時,應當盡可能多地使用庫函數,這樣既可以提高程序的運行效率,又可以提高編程的質量。

2、用戶自定義函數用戶自定義函數顧名思義就是用戶自己定義的函數。程序的編寫過程其實就是一個個函數的定義過程。很多情況下,C語言的編譯系統提供給我們的函數并不能滿足用戶的要求,這就要求用戶自己編寫函數。函數是由一組語句組成,并給定一個名字。相應的函數的定義一般可分為兩大部分:函數頭部的定義、函數體的定義。形式如下:函數的類型函數名(函數的參數){函數體;}上面大括號上邊的一行成為函數的頭部(首部),它給出了函數的表面信息:函數返回值的類型,函數的名字,函數要處理的數據;大括號內的語句描述了函數的內在構造,這組語句完成一個獨立的操作,是對函數能夠完成功能的具體描述。

3、函數的調用函數是由一組語句組成,并給定一個名字。執行與函數相關的一組語句的行為稱為函數的調用。應該說函數定義好之后調用之前是沒有什么意義的。函數就像某個具有特殊功能的機器工具。這些機器只有在開關打開之后才能發揮作用。在程序編寫過程中,完成“開關機器”這個操作的就是函數調用。函數調用的一般形式:函數名(實際參數);

二、函數的教學C語言函數的教學主要是學習自定義函數以及庫函數的使用。

查看全文

C語言形象比喻應用

1比喻貼近生活,變抽象為直觀比喻使用的例子要源于生活,盡量選用學生熟知的、感興趣的,或是與他們生活密切相關的事物,借以說明抽象的C語言問題,進而使學生理解和掌握知識點。案例:“指針概念”的講解。指針的概念一直是C語言教學中的難點,“指針是一個存放另一變量地址的變量,由于這個變量指向的是地址,故稱它為指針。”學生單從字面上很難理解,可以通過下面的例子幫助學生理解指針的概念:新生要去教務處,但不認識路。有老師告訴他:你去101。新生到了101,發現這里并不是教務處。可桌上有張紙條“教務處在105”。學生根據紙條內容,在105找到了教務處(表1)。通過這樣一個圖示,學生明白了:有一種變量,是用來存放另一個變量地址的,這種變量稱為指針。對初學者而言,任何標準化的定義都是抽象的,甚至不知所云。此時,形象比喻顯得十分重要,可以把抽象轉為直觀,學生增強學習信心的同時,也加深了對知識點理解。

2比喻通俗易懂,具有延伸性列舉實例要通俗易懂,引用生活中的簡單事物闡述C語言復雜的知識點,同時,考慮到知識點的連貫性,比喻對象也需要具有延伸性,方便學生在已有知識的基礎上接受新內容。案例:“數組概念”的講解。“在程序設計中,為了處理方便,把具有相同類型的若干變量按有序的形式組織起來,這些按序排列的同類數據元素的集合稱為數組。”乍看起來很抽象,但是如果通過形象比喻,學生就會很清楚。用“客棧房間”作比:當定義了intarray,表示在內存中開辟了10個連續空間,下標從0~9;只能存放int數值。就好比在客棧定下了10個房間,門牌號從0開始一直到9,然后客人依次入住;客人的身份也有一定的要求,只能是int型的客人才能入住。由此,學生掌握了使用數組需要注意的細節。當教師提出array元素是否存在時,學生能夠迅速聯想到號碼為10的房間不存在,由此順利延伸出“越界”的概念。同時通過這個事例,學生對一維數組的理解直觀清晰,在此基礎上加以延伸,使得二維數組講解也取得了比較好的教學效果。

3比喻生動有趣,寓教于樂利用學生感興趣的話題,生動形象地打比方,用幽默的語言,形象的比喻,激發學生學習興趣,讓抽象的代碼變成生動的故事情節,從而達到讓學生熟練編寫代碼的目的。案例:“在有序數組中插入元素”的講解。轉化為陳述《武林外傳》中一個故事情節:同福客棧佟掌柜規定,伙計需按年齡由小到大的順序,依次安排房間入住。老白、郭芙蓉、李大嘴、呂秀才已按要求住下多日,現有年齡為20歲的祝無雙到來,要插入其中,想保持原來順序不變,該如何操作?(表2)故事講完了,令學生困擾的代碼結構也搭建完畢,在此基礎上稍加完善,完整的代碼就誕生了。學生在課堂上體現了極大的熱情,以重現故事過程的形式,完成了代碼的編寫,在輕松愉悅的氣氛中掌握了數組的實際應用。

4比喻對象擬人化,突破知識難點C語言編程有很多固定格式和要求,諸多規范貫穿在這門課程當中,顯然死記硬背只會削弱學生的學習熱情。此時,可以把基本規范擬人化,讓每一個規范都變得生動,讓每一段代碼都富有生命。案例:“主函數與非主函數間調用關系”的講解。

5以“公司老板和員工的關系”作比(公司老板—主函數、員工—非主函數):(1)公司的運行,應由老板下達命令;(2)老板可以吩咐員工做事,反之不行;(3)員工之間可以相互幫忙。轉化為函數的概念,即:(1)程序需從main函數開始執行;(2)主函數可以調用非主函數,非主函數不能調用主函數;(3)非主函數之間可以相互調用。利用擬人比喻,學生再也不會把相關概念記混淆,擁有清晰的思路,就能夠編寫出正確的代碼。5比喻深入到應用,激發學習動力通過形象的比喻,把C語言在工作生活中的重要性、實用價值闡述給學生,培養學生學習的主觀能動性。

比如學生經常愛玩的“五子棋”、“貪吃蛇”、“心理測試”等等,他們雖然無法寫出游戲對應的復雜程序,但從中可以感受到誘人的動畫效果,計算機語言的強大功能。學生學好C語言,可以設計“個性計算器”,給朋友編寫“猜數字”等等互動小游戲。通過形象切實的比喻,讓學生知道C語言在現實生活中非常實用,認識到C語言是一門很有趣的課程,這樣才能激發他們更強大的學習動力,往課程更深處探究。

查看全文

C語言實踐體會感言

在科技高度發展的今天,計算機在人們之中的作用越來越突出。而c語言作為一種計算機的語言,我們學習它,有助于我們更好的了解計算機,與計算機進行交流,因此,c語言的學習對我們尤其重要。

在這個星期里,我們專業的學生在專業老師的帶領下進行了c語言程序實踐學習。在這之前,我們已經對c語言這門課程學習了一個學期,對其有了一定的了解,但是也僅僅是停留在了解的范圍,對里面的好多東西還是很陌生,更多的在運用起來的時候還是感到很棘手,畢竟,萬事開頭難嘛。

由于時間的關系,我們的這次實踐課程老師并沒有給我們詳細的介紹,只是給我們簡單的介紹了幾個比較重要的實際操作。包括了程序模塊處理。簡單界面程序。高級界面程序。程序的添加修改。用程序做一元線性回歸處理以及用c語言程序來畫粒度分布圖等這幾樣比較重要的時間操作。

上機實驗是學習程序設計語言必不可少的實踐環節,特別是c語言靈活、簡潔,更需要通過編程的實踐來真正掌握它。對于程序設計語言的學習目的,可以概括為學習語法規定、掌握程序設計方法、提高程序開發能力,這些都必須通過充分的實際上機操作才能完成。

學習c程序設計語言除了課堂講授以外,必須保證有不少于課堂講授學時的上機時間。因為學時所限,課程不能安排過多的統一上機實驗,所以希望學生有效地利用課程上機實驗的機會,盡快掌握用c語言開發程序的能力,為今后的繼續學習打下一個良好的基礎。為此,我們結合課堂講授的內容和進度,安排了12次上機實驗。課程上機實驗的目的,不僅僅是驗證教材和講課的內容、檢查自己所編的程序是否正確,課程安排的上機實驗的目的可以概括為如下幾個方面:

1.加深對課堂講授內容的理解

查看全文

高職C語言教學

隨著人類社會從工業化轉向工業信息轉型的速度越來越快,人們對信息在這個轉型過程中所起到的作用越來越重視,對開發和使用信息資源越來越迫切。現在社會的競爭說到底是人才、信息等綜合實力的競爭,所以各個用人單位無一例外幾乎都把是否會使用計算機處理信息作為一項非常重要的指標。為了適應社會的發展,提高高職學生的綜合競爭力,很多高職院校本來在理科專業中開設的C語言課程,現在在很多文科專業也開設這門課程,本身理科生C語言課程學習就有困難,而邏輯思維并不適應這門課程的文科生也來學習它,其難度可想而知。因此筆者通過多年在C語言教學過程中所總結的經驗,具有針對性的分析了高職文科生C語言教學的現狀,提出了改進教學效果的相關措施。

一、文科生學習C語言的難度

C語言是計算機專業及相關專業的一門很重要的專業基礎課程,其處理能力和表現能力極強、使用靈活方便、目標程序效率高、可移植性好,但有著復雜的語法結構,且程序設計本身枯燥、嚴謹,難以理解,學生缺乏相關的知識,對于文科生來說有一定的難度。

表現如下:

1、有心理障礙一聽說編程,有的學生就覺得很難。首先有心理障礙,而一般老師也強調學好語言類的課程,首先必須英語和數學要好,而大部分文科生的數學都不太好,C語言在他們看來,這是一門比數學還詭異的課程。學習過程順暢還好,一旦遇到難理解的知識點,就懷疑自己。難理解的知識點積累到一定程度后,開始慢慢放棄,直到跟不上課,破罐破摔。

2、缺乏邏輯思維訓練長期以來,文科生主要是形象思維的訓練,而C語言是一門理論性較強的計算機課程。它要求學生側重于理解,并具有一定的邏輯思維能力,要在這兩者的基礎上加以應用才能學好。可想而知,要讓文科生編寫這樣一個要求有慎密思維的程序,再加上C語言中的幾個知識點,如指針等都是理解的瓶頸,必然對他們的學習造成一定的困難。

查看全文

C語言課程設計教學探究

一、傳統C語言課程設計教學模式

C語言是最基本的計算機編程,是計算機、電子信息類等相關專業學生的專業入門課,在其學習過程中,要求必須掌握編程的技能。但是C語言的學習有其特點,規則比較多、知識點多,涉及到的編程程序等也比較難懂,在運行上代碼的要求較高,程序執行效率高,因此更講究教學和學習的方式方法,但是在我們的教學中,目前教學方法比較單一,隨著信息化的發展,傳統的教學模式已經無法適應,亟需改革。

1、傳統型

這種教學模式,也是最常用的,課堂上以老師為主,學生只能被動的接受知識的傳授。通過最直接“填鴨”式照本宣科,不管學生接受與否,最后的考核也是以知識點的記住與否,造成學生死記硬背,不能真正掌握知識。其基本模式為:學習——回答——糾錯——總結。這種模式下,使得教師在教材以外的發揮余地極小,基本是“照本宣科”,強行灌輸C語言的概念、特點、編程程序、基本的方法等,整個教學過程缺乏靈活機動、具有啟發性的內容,學生被動的接受知識、被動的記憶、被檢查、被考試、被批評等,日復一日的教條式訓練,不能有效地激發學生的主觀能動性與創造熱情。

2、任務型

C語言教學區別于其他學科,在理論知識的傳授之外,還需要培養學生的實際動手能力,因此,很多學校也采用“任務型”教學模式,基本模式為:根據具體要求提出任務—鼓勵學生設計方案—實際操作—解決任務。在日常的教學中,學校大多會利用電腦等鍛煉學生的實際動手能力,利用實際操作,鍛煉編程、邏輯等能力,從而掌握C語言的基本知識。例如翻轉課堂模式,教師將知識傳授環節制作成教學微課,課前提供給學生預習,通過預習使課堂的實踐性練習目的性更明確,教師隨堂對學生遇到問題進行指導分析,從而培養學生獨立思考能力和實際操作能力。這種模式的采用,相對于傳統模式,有其進步性,這也是C語言等專業性、操作性學科區別于其他學科的特點決定的,在這種模式下更取決于教師自身的素質、知識、能力等,是整個課程的掌控者、引導者,他們的能力直接關系著教學成果。

查看全文

C語言課程教學綜述

1、引言

現在高等學校,一般也都根據不同的需要選用不同的程序設計入門課程。其中C語言作為一門程序語言基礎課,由于其功能強、使用靈活等優點受到廣泛的歡迎,也就是說C語言已經成為了學習程序設計語言的一個必要的基礎。在學時相對較少的情況下,學生要學好這門課有一定的難度.但依然要提高教學的質量和效果是廣大教學工作者正在思考和探索的問題.

2、教學過程中的改進

2.1教學方法的改進C語言作為DOS時代的一種主流程序設計語言,已逐漸演變成為一種程序設計的入門級語言——重在使學生熟悉計算機處理事務的過程,掌握程序設計的思想,完成學生從中學生到大學生學習思想的轉變。因而C語言程序設計課程這門課大多高校開設在一年級的第一學期,要從只要求計算機基本操作的中學時代迅速轉換到大學時代的程序設計員,對于學生是一個逐步轉變、逐步學習的過程。而對于我們教育者來說,如何去改進現有的教學方法,正確的引導學生學習思路、學習方法的轉變,以提高課堂教學的質量.筆者在以下幾方面進行了嘗試:

2.1.1教師角色的轉變中學時代的教學多以升學為基本任務和目標,所以中學教師的教學多以灌輸式為主,在教學過程中教師始終是主體,而學生總是被動的接受和消化。而大學時代的教學是以培養學生的基本素養和能力為目標,因而要求教學的過程要以學生為主體,教師要做正確的引路人,而不是知識的灌輸者。因而教師角色的轉變實際上更多的還是在學生心目中中學教師角色到大學教師角色的轉變,要在教學的第一堂課向學生宣布這個事情,使學生從教師角色的轉變到學生自己明白他們已經跨入了人生的有一個新的階段:自己的學習、思想都要有更大的轉變,從以前被動的接受學習,到大學時期的主動自覺的學習,從而培養和更大的提高他們的學習能力和其他方面的能力。

2.1.2課堂實施的轉變C語言作為一門程序設計語言自然有它自身的特點,但是作為一門言語課,他又脫不開與學生很熟悉語文、英語這些語言課學習的共同之處。根據筆者的學習和教學經驗:得知更多的學生在學習C語言的過程中,甚至在學習完這門課后也不知道C語言的作用是什么,它學習的重點內容是什么。所以C語言教學的課堂實施的轉變更是教學的重中之重:要使學生從中學時期純粹的數理化的學習轉變到大學時期專業能力和自身適應能力的學習。根據筆者多年的教學,我們引用用了一個全新的教學方法—“3W1H”教學法。在講C語言前和所講的每一節課都要使學生明白正門課或者所講的每個知識點是什么(WHAT),在哪里能用(WHERE),為什么要這樣用(WHY)和怎么去用(HOW)。從總體的結構:程序設計語言的3W1H到沒一點的3W1H,我們在每一節課的過程中都要去給學生分析、實踐。另外我們又結合語言課的特點教會學生從C語言的字(字符)、詞(數據類型、變量常量)、句(語句)和章(函數、程序)入手去總結,打亂教材的原有章節,去分析總結,從而大大提高了學生學習的效率。

查看全文

C語言—指針計算方式

1C語言是目前世界上使用最為廣泛的計算機語言之一,目前已經成為各大高校主要的計算機教學語言。指針算法是C語言中的一個非常重要的概念,由于指針算法概念比較復雜,運用非常靈活,比較難掌握,尤其是對初次涉及計算機語言的學生來說更是如此。本文重點分析C語言指針算法單元教學中的幾個關鍵點,并探討C語言教學中應該注意的一些問題。指針算法知識單元構成

1.1指針算法定義在計算機內存中,每一個存儲單元(通常為1字節)都有一個固定的編號,就像酒店中的房間號碼一樣,這個編號就稱為地址,相當于房間號。在地址所標識的內存單元中存放數據,這就相當于酒店中各個房間里居住的旅客一樣。

1.2引用指針算法變量&和*是C語言有關指針算法的兩個重要運算符,分別是取地址運算符和指針算法運算符。例如:&x為變量x的地址,*p為指針算法變量p所指向的存儲單元。應該注意的是在定義時*只起說明作用,不是運算符。比如下面的語句中:floatx=1.5float*P=&xfloat*P=x很多同學在這里有些迷惑,到底是第2條語句正確還是第3條語句正確呢?根據指針算法的定義很顯然第2條語句是正確的。迷惑的原因就在把*當成了運算符。其實,這里的float*共同來修飾P,定義一個指向浮點型的指針算法變量,同時要將一個指針算法&x賦值給P。為了方便對存儲單元進行控制,我們可以設置某些變量專門存放指針算法,這樣的變量稱為指針算法變量。在課堂教學中,應注意使學生明白內存單元地址與內存單元內容這兩個概念的區別,很多初學者在這個概念問題上常常弄混淆。

1.3指針算法與數組

1.3.1指針算法與數組區別。在C語言中數組與指針算法的關系非常密切,但它們還是有著本質上的區別。指針算法可以隨時指向任意類型的內存單元,它的特征是可變。所以我們常用指針算法來操作動態內存。當數組作為函數的參數進行傳遞時,該數組自動退化為同類型的指針算法。例如:charx[]=chinachar*p=china上述兩個變量的內存布局情況是:數組x需要在內存中占用6個字節的空間。這段內存區通過數組名x來標志。指針算法P則需要4個字節的空間來存放地址,這4個字節用P來標志。其中存放的地址幾乎可以指向任何地方,也可以哪里都不指。目前這個P指向某地連續的6個字節即字符串china。在教學過程中應該注意使學生能夠正確認識數組與指針算法的區別,并正確運用它們。

1.3.2數組指針算法。數組指針算法的實質是指針算法,其定義為:int(*p)[n]表示P為指向由n個元素組成的一維數組的指針算法變量。假設對于一個二維數組a[2][3],定義一個指向它的數組指針算法P,程序如下:inta[2][3]={{l,2,3},{4,5,6}}int(*p)[3]P=aprintf(%d,(*p)[1])p++printf(%d,(*p)[1])在該程序中,初始化數組指針算法P指向數組a的首地址,即指向二維數組的首行,此時,輸出這一行的第1個元素,即(*p)[1]=2接著,P往下移動一個數組的寬度,即指向二維數組的第二行,輸出這一行的第1個元素,即(*p)[1]=5。

查看全文