資源描述:
《次課--指針變量的定義和運(yùn)算、指針變量作函數(shù)參數(shù)》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、同學(xué)們,加油噢!教學(xué)主題指針變量的定義和運(yùn)算、指針變量作函數(shù)參數(shù)教學(xué)目標(biāo)通過(guò)本次課的學(xué)習(xí),使學(xué)生掌握指針的概念、指針變量的概念和定義方法、指針變量的運(yùn)算、以及指針變量作為函數(shù)參數(shù)的用法。教學(xué)重點(diǎn)1、指針變量的定義、賦值2、指針變量的運(yùn)算3、指針變量作為函數(shù)參數(shù)的用法教學(xué)難點(diǎn)1、指針和指針變量的區(qū)別2、指針變量作為函數(shù)參數(shù)的實(shí)質(zhì)及效果教案主要內(nèi)容指針和指針變量的概念指針變量的定義和賦值指針變量的運(yùn)算指針變量作為函數(shù)的參數(shù)為什么引入指針指針是C語(yǔ)言的特色、精華程序設(shè)計(jì)時(shí)應(yīng)用指針的好處①支持動(dòng)態(tài)分配內(nèi)存②能有效而方便地使用數(shù)組(包括字符串)③可以在函數(shù)調(diào)用時(shí)返回多個(gè)值舉例在程序中
2、,有如下語(yǔ)句。問(wèn):內(nèi)存中會(huì)如何變化?intx,y;x=12;y=20;1220內(nèi)存單元的編號(hào),叫地址&x&y內(nèi)存地址在計(jì)算機(jī)中,所有的數(shù)據(jù)都是存放在存儲(chǔ)器中的。一般把存儲(chǔ)器中的一個(gè)字節(jié)稱為一個(gè)內(nèi)存單元。為了正確地訪問(wèn)這些內(nèi)存單元,必須為每個(gè)內(nèi)存單元編上號(hào)。根據(jù)編號(hào)就可以準(zhǔn)確地找到該內(nèi)存單元。內(nèi)存單元的編號(hào)也叫做內(nèi)存地址。程序中一個(gè)變量包含了兩個(gè)概念:①變量在內(nèi)存中的地址②存放在該地址中的內(nèi)容注意變量的地址是由系統(tǒng)分配的,在程序中只可使用,不能修改。內(nèi)存單元的地址和內(nèi)存單元的內(nèi)容內(nèi)存單元的地址內(nèi)存單元的內(nèi)容指針和指針變量的定義C語(yǔ)言中,將地址形象化地稱為“指針”。意思是通過(guò)它
3、可以找到以它為地址的內(nèi)存單元。一個(gè)變量的地址稱為該變量的指針。即:指針就是內(nèi)存地址。如果一個(gè)變量專門(mén)存放另一個(gè)變量的地址(即指針),則稱為指針變量。問(wèn):指針、指針變量是一回事嗎?指針變量舉例在圖6-2中,變量x占用了20A0起的2個(gè)內(nèi)存單元,其內(nèi)容(值)為12。設(shè)有指針變量P,內(nèi)容為20A0。這種情況我們稱為P指向變量x,或稱P是指向變量x的指針變量。返回指針變量的定義定義指針變量時(shí)要包括三個(gè)內(nèi)容:①指針變量類型說(shuō)明,即標(biāo)明變量為一個(gè)指針變量。②指針變量名。③指針變量所指向的變量的數(shù)據(jù)類型。其一般形式為:類型標(biāo)識(shí)符*指針變量名;標(biāo)明這是一個(gè)指針變量變量名本指針變量所指向的變
4、量的數(shù)據(jù)類型定義指針變量舉例針對(duì)圖6-2,應(yīng)該如何定義x和p?intx;int*p;表示p是一個(gè)指針變量,它指向某個(gè)整型變量。如何給這兩個(gè)變量賦值?x=12;p呢?指針變量的賦值指針變量同普通變量一樣,使用之前不僅要定義,而且必須賦予具體的值。給指針變量賦值只能賦予地址,不能賦予任何其它數(shù)據(jù)。C語(yǔ)言中提供了地址運(yùn)算符&來(lái)表示變量的地址。其一般形式為:&變量名例如:&a變示變量a的地址。指針變量賦值舉例針對(duì)圖6-2,有如下語(yǔ)句:intx;int*p;x=12;如何給p變量賦值?p=&x;如何在定義的同時(shí)給變量賦值?intx=12;int*p=&x;在用之前,x已定義給指針變量
5、賦值時(shí)的注意點(diǎn)可以讓指針變量不指向任何變量。int*p;p=NULL;(NULL在stdio.h中有定義)通常不允許直接把一個(gè)數(shù)值賦給指針變量。int*p;p=1000;被賦值的指針變量前不能再加“*”說(shuō)明符。inta,*p;*p=&a;一個(gè)指針變量只能指向同類型的變量。floatb;int*p;p=&b;錯(cuò)誤的用法錯(cuò)誤的用法錯(cuò)誤的用法指針變量的特殊性①指針變量也是一種變量。②指針變量只不過(guò)是一種特殊的變量,其特殊性表現(xiàn)在類型和值上。③指針變量的類型是指針?biāo)赶虻淖兞康念愋?。④指針變量的值是某個(gè)變量在內(nèi)存中的地址。指針變量使用技巧指針變量的使用原則:先賦初值(地址),再使用
6、。理由:安全使用指針變量的方法:對(duì)暫時(shí)不使用的指針,可先定義成空指針。即將其賦值為NULL。使用未經(jīng)賦值的(浮游)指針危害很大。返回與指針變量有關(guān)的運(yùn)算符與指針變量有關(guān)的運(yùn)算符有兩個(gè):&和*。取地址運(yùn)算符(&)單目運(yùn)算符,右結(jié)合。取內(nèi)容運(yùn)算符(*),也叫指針運(yùn)算符單目運(yùn)算符,右結(jié)合。作用:用來(lái)表示指針變量所指向的變量的內(nèi)容。指針變量引用舉例問(wèn):下面程序的運(yùn)行結(jié)果是什么?#include"stdio.h"voidmain(){inta,b;int*p;a=123;p=&a;b=*p;*p=-200;printf("a=%d,b=%d",a,b);p=&b;printf(“
7、%d,%d",b,*p);}程序運(yùn)行結(jié)果a=-200,b=123123,123運(yùn)行程序(3_1)思考①p的指向;②第2個(gè)printf中的訪問(wèn)方式指針變量的運(yùn)算除了&和*兩種運(yùn)算之外,指針變量還可以進(jìn)行賦值運(yùn)算、加減算術(shù)運(yùn)算和關(guān)系運(yùn)算。指針變量的賦值運(yùn)算把一個(gè)指針變量的值賦予指向相同類型變量的另一個(gè)指針變量。inta,*pa=&a,*pb;pb=pa;把數(shù)組的首地址賦予同類型的指針變量。inta[5],*pa;pa=a;或pa=&a[0];把字符串的首地址賦予指向字符類型的指針變量。char*pc;pc="Iam