资源描述:
《电大C语言程序设计 第5章 指针ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、《C语言程序设计》计算机科学与技术专业本科第5章指针(一)教学内容1.指针的有关概念;2.指针的各种运算3.数组元素的指针访问方式4.数据存储空间的动态存储分配第5章指针(二)教学要求了解:指针的有关概念;理解:指针的各种运算符的含义,一维和二维元素的指针访问方式,动态存储分配与释放函数的含义;应用:会分析含有指针操作的程序。第5章指针5.1指针的概念指针就是内存单元的地址,指针类型定义以*标识。例:int*//整型指针char*//字符指针double*//double型指针第5章指针5.2指针变量1.定义格式<类型关键字>
2、*<指针变量名>[=<指针表达式>],…;例: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、表示指针数据类型,但是每个*号只对其后的一个变量名起作用。int*p1,p2;//p1为int*类型,p2为int类型int*p1,*p2;//p1为int*类型,p2为int*类型(2)多个星号(*)表示多级指针数据类型。int*p1,**p2,***p3;//p1为int*类型,p2为int**类型,p3为int***类型第5章指针5.2指针变量3.几点说明(3)指针变量只能接受同类型的指针表达式的值,void*类型的指针可以接受任何类型的指针表达式的值。char*p=“string”,**q=&p;void*v1=p
5、,*v2=(void*)p;//void*类型指针可以接受任何类型的指针表达式的值(4)若要把指针表达式的值赋值给一个与之不同的指针类型的变量时,应该把这个值强制转换为被赋值变量所具有的指针类型。char*cp;inta[10];cp=(char*)&a[0];第5章指针5.2指针变量3.几点说明(3)指针变量只能接受同类型的指针表达式的值,void*类型的指针可以接受任何类型的指针表达式的值。char*p=“string”,**q=&p;void*v1=p,*v2=(void*)p;//void*类型指针可以接受任何
6、类型的指针表达式的值(4)若要把指针表达式的值赋值给一个与之不同的指针类型的变量时,应该把这个值强制转换为被赋值变量所具有的指针类型。char*cp;inta[10];cp=(char*)&a[0];第5章指针5.2指针变量3.几点说明(5)在printf()函数中,若输出指针表达式的值,则需要在格式字符串中使用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,表指针指向的数据为常量。结论: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,表指针本身为常量。结