亚洲国产日韩欧美在线a乱码,国产精品路线1路线2路线,亚洲视频一区,精品国产自,www狠狠,国产情侣激情在线视频免费看,亚洲成年网站在线观看

淺談C語言中指針的教學(xué)

時間:2020-10-26 10:04:28 計算機畢業(yè)論文 我要投稿

淺談C語言中指針的教學(xué)

  C語言是一門通用計算機編程語言,應(yīng)用廣泛。C語言的設(shè)計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產(chǎn)生少量的機器碼以及不需要任何運行環(huán)境支持便能運行的編程語言。

淺談C語言中指針的教學(xué)

  摘要:C語言數(shù)據(jù)類型非常豐富,其中一個重要的數(shù)據(jù)類型是指針,利用指針可以直接實現(xiàn)對內(nèi)存的數(shù)據(jù)進行快速處理、實現(xiàn)函數(shù)間的調(diào)用等。但是由于指針概念較為復(fù)雜,使用起來非常靈活,所以對于大一的新生初次學(xué)習(xí)程序語言設(shè)計,在學(xué)習(xí)到指針這一數(shù)據(jù)類型的時候往往難以掌握。因此在教學(xué)中,教師需要根據(jù)學(xué)生的實際情況合理的安排這一知識點的學(xué)習(xí),一般可以按照數(shù)據(jù)在內(nèi)存中的存儲方式合理地進行教學(xué)設(shè)計,幫助學(xué)生理解指針的概念,從而熟練掌握指針的使用。

  關(guān)鍵詞:指針;內(nèi)存;程序

  一、指針的概念

  首先要讓學(xué)生明確指針也是一種數(shù)據(jù)類型。為了讓學(xué)生很好的理解指針到底是一種什么樣的數(shù)據(jù)類型,就必須讓學(xué)生理解數(shù)據(jù)在內(nèi)存中是如何存儲的。內(nèi)存是以字節(jié)為單位的一片連續(xù)的存儲空間,每一個字節(jié)單元都對應(yīng)著一個唯一的存儲單元的編號,這個存儲單元的編號就稱為內(nèi)存單元的地址,簡稱地址?梢耘e例學(xué)生宿舍,內(nèi)存單元的地址就相當(dāng)于我們學(xué)生所在宿舍的房間號,在內(nèi)存地址所標識的內(nèi)存單元中所存放的數(shù)據(jù),就相當(dāng)于學(xué)生宿舍里入住的學(xué)生一樣,可以有單人間,雙人間,四人間等等。即根據(jù)數(shù)據(jù)類型的不一樣,分配不同的存儲空間。如下定義:char n; float d;int m ; 變量的類型不一樣,內(nèi)存為各自分配存儲空間也不一樣。由于變量n是字符型數(shù)據(jù),所以內(nèi)存分配其1個字節(jié)的存儲單元;變量d是浮點型數(shù)據(jù),所以內(nèi)存分配其4個字節(jié)的存儲單元;變量m是整型數(shù)據(jù),所以內(nèi)存分配其2個字節(jié)的存儲單元。所謂變量的地址就是內(nèi)存為各變量所分配的存儲空間的第一個字節(jié)單元的地址。即地址就是用來標識數(shù)據(jù)的存儲單元的一種數(shù)據(jù)類型,方便用戶對存儲在各自單元中的數(shù)據(jù)進行正確的訪問,在C語言中就將地址稱為指針。指針可以用來指向變量、結(jié)構(gòu)體\\數(shù)組及其元素以及指針等。

  二、區(qū)分變量、變量名、變量的地址和變量值

  為了更好的理解指針這種類型的數(shù)據(jù),我們先來理解一下變量、變量名、變量的地址和變量值的區(qū)別。所謂的變量即命名的內(nèi)存空間。變量在內(nèi)存中占有一定空間,用于存放各種相應(yīng)類型的數(shù)據(jù);所謂的變量名即給內(nèi)存空間所取的一個容易記憶的名字;所謂的變量的地址即變量所使用的內(nèi)存空間的地址(內(nèi)存單元的.編號);所謂的變量值即所對應(yīng)的內(nèi)存單元中存放的數(shù)值。

  三、指針變量的定義、賦值和引用

  (一)指針變量的定義格式:基類型 *變量名;

  例如: int *n; /*定義一個指向整數(shù)據(jù)的指針變量n*/

  char *m; /*定義一個指向字符型數(shù)據(jù)的指針變量m*/

  float *p; /*定義一個指向浮點型數(shù)據(jù)的指針變量p*/

  注意:C語言所有的變量必須是先定義然后再使用。指針變量也必須如此,為了表示指針變量是存放地址的一種特殊變量,所以在定義變量時會在變量名前加“*”號;指針變量的基類型表示指針變量所指向數(shù)據(jù)的類型,因各數(shù)據(jù)類型占用的存儲空間不一樣,指針變量的某些操作具有特殊的含義。如指針變量加1,不是純粹的加1個字節(jié), 而是加一個所指向變量的字節(jié)個數(shù),例如:int *p, b=100; p=&b;其中執(zhí)行p++;指的是p值加2個字節(jié)。

  (二)指針變量的賦值方法

  (1)變量的地址賦值給指針變量,例如:int a, *p;p=&a;

  (2)相同類型的指針變量之間賦值,例如:int a, *p1,*p2;p1=&a;p2=p1;

  (3)賦空值NULL,例如:int *p1 =NULL;

  (三)指針變量的具體使用

  首先區(qū)分“&”運算符和“*”運算符。“&”運算符表示取變量的地址, “*”運算符表示訪問指針變量所指向的變量的值。在定義指針變量時”*”是指針變量的標志,沒有特殊含義,但在具體使用中要注意,在指針變量前加了”*”, 表示取其所指向變量的值。從變量名獲得變量地址用“&”運算符,從地址獲得地址指向的數(shù)據(jù)用“*”運算符。

  例如:int a=3,*p=&a;

  具體訪問數(shù)據(jù)時,可以按變量名直接訪問,如:a=3;而利用指向變量的的指針去訪問屬于間接訪問,即變量a的地址(指針)存放在指針變量p中,p=&a(p指向a),然后利用指針變量p進行變量a的訪問*p=3,這就是間接訪問。

  四、指針變量可以作為函數(shù)的參數(shù)

  指針變量和其它數(shù)據(jù)類型的變量一樣也作為函數(shù)參數(shù),區(qū)別只是傳遞的內(nèi)容是一個地址值。而且可以通過這個地址值間接改變實參、形參所共同指向的變量的值。

  例如:輸入a,b,交換a,b數(shù)據(jù)后輸出。

  void fun(int *p1, int *p2)

  {int temp;

  temp=*p1;

  *p1=*p2 ;

  *p2=temp;}

  main()

  {int a=3,b=5,*pa, *pb;

  pa=&a;

  pb=&b;

  fun(pa,pb);

  printf(“swaped:\n”);

  printf(“a=%d,b=%d\n”,a,b);}

  五、總結(jié)

  本文主要介紹了指針的基本概念及其使用。由于指針這種數(shù)據(jù)類型比較靈活,所以學(xué)生剛開始使用時容易出錯,可以通過指導(dǎo)學(xué)生上機調(diào)試程序,弄清程序中的細節(jié),區(qū)分指針與其它數(shù)據(jù)類型的區(qū)別,累積編程得經(jīng)驗,以達到熟練的使用它。

  參考文獻:

  [1]董漢麗.C語言程序設(shè)計[M].大連:大連理工出版社,2002.

【淺談C語言中指針的教學(xué)】相關(guān)文章:

1.c語言指針面試常見問題

2.在C語言中什么是指針和數(shù)組等價

3.C語言中一個結(jié)構(gòu)不能包含指向自己的指針

4.C 語言循環(huán)結(jié)構(gòu)教學(xué)中案例教學(xué)的應(yīng)用和探討論文

5.C++筆試題:關(guān)于鏈表和指針

6.C++面試常用問題:"引用"與指針的區(qū)別

7.C語言程序的結(jié)構(gòu)

8.C語言編程練習(xí)

9.C語言編程題