資源描述:
《電大C語言程序設(shè)計 第5章 指針ppt課件.ppt》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、《C語言程序設(shè)計》計算機(jī)科學(xué)與技術(shù)專業(yè)本科第5章指針(一)教學(xué)內(nèi)容1.指針的有關(guān)概念;2.指針的各種運(yùn)算3.數(shù)組元素的指針訪問方式4.數(shù)據(jù)存儲空間的動態(tài)存儲分配第5章指針(二)教學(xué)要求了解:指針的有關(guān)概念;理解:指針的各種運(yùn)算符的含義,一維和二維元素的指針訪問方式,動態(tài)存儲分配與釋放函數(shù)的含義;應(yīng)用:會分析含有指針操作的程序。第5章指針5.1指針的概念指針就是內(nèi)存單元的地址,指針類型定義以*標(biāo)識。例:int*//整型指針char*//字符指針double*//double型指針第5章指針5.2指針變量1.定義格式<類型關(guān)鍵字>
2、*<指針變量名>[=<指針表達(dá)式>],…;例:int*ip;char*cptr;int*iptr1,iptr2;(1)建立指針包含指針變量定義和給指針賦初值(地址)。(2)&操作符可取變量地址,指針變量用于存放地址。第5章指針5.2指針變量例:int*iptr;inticount=18;iptr=&icount;//指針賦值該例等價與例:inticount=18;int*iptr=&icount;//指針的初始化第5章指針5.2指針變量2.格式舉例(1)int*p;(2)inta=10,*pa=&a;(3)charc='a',
3、*cp=&c;(4)char*hp1="abc",*hp2=hp1;(5)void*p1=0,*p2=cp;(6)double*dp[5],*q;(7)int*ip[10]={0};(8)char*rp[3]={"front","middle","rear"};(9)intn=20,*np=&n,**pp=&np;第5章指針5.2指針變量2.格式舉例intn=20,*np=&n,**pp=&np;n的類型為int,np的類型為int*,pp的類型為int**。20ppnpn第5章指針5.2指針變量3.幾點說明(1)星號(*)
4、表示指針數(shù)據(jù)類型,但是每個*號只對其后的一個變量名起作用。int*p1,p2;//p1為int*類型,p2為int類型int*p1,*p2;//p1為int*類型,p2為int*類型(2)多個星號(*)表示多級指針數(shù)據(jù)類型。int*p1,**p2,***p3;//p1為int*類型,p2為int**類型,p3為int***類型第5章指針5.2指針變量3.幾點說明(3)指針變量只能接受同類型的指針表達(dá)式的值,void*類型的指針可以接受任何類型的指針表達(dá)式的值。char*p=“string”,**q=&p;void*v1=p
5、,*v2=(void*)p;//void*類型指針可以接受任何類型的指針表達(dá)式的值(4)若要把指針表達(dá)式的值賦值給一個與之不同的指針類型的變量時,應(yīng)該把這個值強(qiáng)制轉(zhuǎn)換為被賦值變量所具有的指針類型。char*cp;inta[10];cp=(char*)&a[0];第5章指針5.2指針變量3.幾點說明(3)指針變量只能接受同類型的指針表達(dá)式的值,void*類型的指針可以接受任何類型的指針表達(dá)式的值。char*p=“string”,**q=&p;void*v1=p,*v2=(void*)p;//void*類型指針可以接受任何
6、類型的指針表達(dá)式的值(4)若要把指針表達(dá)式的值賦值給一個與之不同的指針類型的變量時,應(yīng)該把這個值強(qiáng)制轉(zhuǎn)換為被賦值變量所具有的指針類型。char*cp;inta[10];cp=(char*)&a[0];第5章指針5.2指針變量3.幾點說明(5)在printf()函數(shù)中,若輸出指針表達(dá)式的值,則需要在格式字符串中使用p作為類型說明符。#includevoidmain(){inta=30;char*cp;cp="output";printf("%p%p",&a,cp);printf("%d%s",
7、a,cp);}第5章指針5.2指針變量3.幾點說明(6)在定義指針變量時,可以用const修飾。指向常量的指針:在指針定義語句的類型前加const,表指針指向的數(shù)據(jù)為常量。結(jié)論:constint*pi=&a;(或intconst*pi=&a;)中,*pi為常量,pi為變量,故*pi不能為左值。第5章指針5.2指針變量3.幾點說明(6)在定義指針變量時,可以用const修飾。例如:constinta=78;constintb=28;intc=18;constint*pi=&a;//intconst*pi=&a;*pi=58;/
8、/錯誤,*pi為常量pi=&b;*pi=68;//錯誤,*pi為常量pi=&c;*pi=88;//錯誤,*pi為常量c=98;第5章指針5.2指針變量3.幾點說明(6)在定義指針變量時,可以用const修飾。指針常量:在指針定義語句的指針名前加const,表指針本身為常量。結(jié)