金龍海
摘要:指針是C語言教學(xué)中的難點(diǎn),該文講述了在講解變量、數(shù)組的時(shí)候,事先引入指針概念,并采用圖示的方法,讓學(xué)生在理解變量、數(shù)組的時(shí)候已經(jīng)對(duì)指針有了一些認(rèn)識(shí),在講解指針的時(shí)候能很自然地過渡到指針的具體定義方式,掌握指針的概念及用法。
關(guān)鍵詞:指針;變量;數(shù)組
中圖分類號(hào):G642文獻(xiàn)標(biāo)識(shí)碼:A文章編號(hào):1009-3044(2012)18-4434-02
C語言程序設(shè)計(jì)這門課程是理工科學(xué)生都要必修的一門課程,在講授這門課程的時(shí)候,指針對(duì)學(xué)生來說是最難理解的一個(gè)部分。如何能讓學(xué)生更好地掌握和接受指針的概念,是C語言教學(xué)中的一個(gè)特色。該文闡述了通過事先引入指針概念,并引用圖示的方法,講解了讓學(xué)生循序漸進(jìn)地掌握指針的講法。圖1
變量定義就是開辟一個(gè)指定類型長度的內(nèi)存空間,并為該空間定義一個(gè)對(duì)應(yīng)的名字,如圖1所示。一個(gè)變量名對(duì)應(yīng)內(nèi)存單元中的一塊內(nèi)存空間,而這塊空間是有地址的,對(duì)變量內(nèi)容的讀和寫都是通過這個(gè)地址來實(shí)現(xiàn)的,地址我們也稱為指針。在這里我們第一次提出指針的概念。
2)講解一維數(shù)組時(shí),引入指針的概念。
定義一個(gè)一維數(shù)組就是開辟n個(gè)指定類型長度的內(nèi)存空間,每個(gè)內(nèi)存空間也都和變量一樣有對(duì)應(yīng)的名字,就是數(shù)組元素的名字。
例如:
int a[5];
定義一個(gè)一維數(shù)組,包括5個(gè)元素,其實(shí)是在內(nèi)存中開辟5個(gè)整型類型長度的內(nèi)存空間,如圖2所示。圖2
a數(shù)組中的5個(gè)元素在內(nèi)存中是連續(xù)存放的,如果第一個(gè)元素a的地址是2000,則a[1]的地址是2004(假設(shè)一個(gè)整型占4個(gè)字節(jié)),a[2]的地址是2008,依此類推,a[4]的地址是2016。也就是說每一個(gè)元素都有存放該元素值的空間,這個(gè)空間我們用地址來查找,這里提到的地址也就是指針。在這里第二次提出指針的概念,并強(qiáng)調(diào)每個(gè)變量或一維數(shù)組元素都有其對(duì)應(yīng)的內(nèi)存空間。
3)講解二維數(shù)組時(shí),引入指針的概念。
例如:
int a[3][4];
定義一個(gè)3行4列的一個(gè)二維數(shù)組,其實(shí)也是在內(nèi)存中開辟12個(gè)整型類型長度的內(nèi)存空間,如圖3所示。
可以定義一個(gè)普通類型的指針變量,用來指向整型變量或整型數(shù)組元素,我們也可以定義一個(gè)指針變量指向一個(gè)一維數(shù)組。int (*p)[4];
該語句定義的是一個(gè)指針變量,而這個(gè)指針變量是指向一個(gè)包括四個(gè)元素的數(shù)組的,此數(shù)組的每個(gè)元素類型是整型。
如果有:
int a[4];
那么我們用語句p=&a;可以讓p指向a數(shù)組了,因?yàn)閍就是一個(gè)包括四個(gè)元素的整型數(shù)組。
再例如:
int a[3][4];
int (*p)[4];
因?yàn)閍數(shù)組中的每一個(gè)都是四個(gè)元素,我們可以讓p指向a數(shù)組中的任何一行,如:p=&a[0];