《指针类型》PPT课件

《指针类型》PPT课件

ID:39524788

大小:501.10 KB

页数:140页

时间:2019-07-05

《指针类型》PPT课件_第1页
《指针类型》PPT课件_第2页
《指针类型》PPT课件_第3页
《指针类型》PPT课件_第4页
《指针类型》PPT课件_第5页
资源描述:

《《指针类型》PPT课件》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10章指针类型10.1指针与指针变量10.2指针与数组10.3指针与字符串10.4指针与结构体10.5指针与链表10.6指针与函数10.7指针作基类型10.8程序设计举例习题十10.1指针与指针变量10.1.1指针变量的定义1.定义方法形式:类型标识符*变量标识符;定义存放指定类型数据地址的指针变量。例如:(1)int*p1,*p2,*p3;定义指向整型数据的指针变量p1、p2、p3。(2)float*q1,*q2,*q3;定义指向实型数据的指针变量q1、q2、q3。(3)char*r1,*r2,*r3;定义指向字符型数据的指针变量r1、r2、r3。

2、(4)structdate{intyear;intmonth;intday;}*t1,*t2,*t3;定义指向structdate类型数据的指针变量t1、t2、t3。说明:(1)指针变量可与普通变量混合定义,指针变量的定义与普通变量的定义用变量名前加“*”区分。例如:inti,*p;/*定义整型变量i,指针变量p*/(2)空指针“NULL”是一特殊的指针数据,表示空地址,相当于整型数据中的0,字符数据中的空格。(3)指针变量只能用于存放指定类型数据的地址。如以上定义的一些指针变量,p1、p2、p3只能存放整型数据的地址,q1、q2、q3只能存放实型数据

3、的地址,r1、r2、r3只能存放字符型数据的地址,t1、t2、t3只能存放structdate型数据的地址。(4)指针变量不能直接赋以具体地址值,不能从键盘输入值。指针变量通过间接赋以相关数据的地址,或调用存储空间分配函数得到值。例如:inti,j,k;int*p1=&i,*p2=&j,*p3=&k;/*p1得到i的地址,p2得到j的地址,p3得到k的地址*/(5)指针类型隐含在指针变量的定义中。例如,在上面定义指针变量p1、p2、p3时,实际上在背后隐含定义了一指向整型数据的指针类型,从形式上可以将int*看成是指向整型数据的指针类型。与数组定义一样,通过typ

4、edef可以将指针类型与指针变量分离。例如,上面定义的指针变量p1、p2、p3,可以改用如下形式:typedefint*INTPOINT;INTPOINTp1,p2,p3;(6)指针变量本身占有2字节的存储空间。(7)“void*”指针类型定义的指针变量,不指向哪一种特定类型的数据,在实际使用时通过强制类型转换成指向特定类型的数据。2.指针变量所指向的变量特定类型的数据例如,对指针变量p1、p2、p3,假定已有值,*p1、*p2、*p3代表指针变量p1、p2、p3所指向的数据,也就是p1、p2、p3的值对应的存储单元里存放的数据,称为指针变量所指向的变量,简称指

5、针指向变量。如果指针变量p1、p2、p3分别存放整型变量i、j、k的地址,则p1指向i,p2指向j,p3指向k。图10-1来直观反应指针变量与指针指向变量的关系。图10-1指针指向变量*p1、*p2、*p3相当于整型变量i、j、k。例如:int*p=&i;scanf(“%d”,p);/*等价于scanf(“%d”,&i)*/printf(“%d”,*p);/*等价于printf(“%d”,i)*/10.1.2指针的运算1.引用运算1)取地址运算(&)取地址运算“&”,对指针变量进行取地址运算,可以得到指针变量本身的地址。2)取内容运算(*)取内容运算“*”,

6、前称指针运算,用于获取地址数据对应存储单元的内容。取内容运算的优先级与取地址运算优先级相同,也为第2级,结合性亦为右结合。对指针变量,进行取内容运算可以得到指针变量所指向的数据。取内容运算与取地址运算实质上是一对互逆运算。例如:inta,*p=&a;*(&a)就是a,&(*p)就是p;p指向a,*p与a等价。2.算术运算指针变量可以进行有限的算术运算。1)加减运算指针变量“加上”或“减去”一个整数n,相当于指针变量加上或减去n个指针所指向数据的存储单位,即指针由当前指向位置向后或向前移动n个指针所指向数据的存储单位。加减运算常用于数组的处理。对指向一般数据的指针,加

7、减运算无实际意义。例如:inta[10],*p=a,*x;x=p+3;/*实际上是p加上3*2个字节赋给x,x指向数组的第三个分量*/对于不同基类型的指针,指针变量“加上”或“减去”一个整数n所移动的字节数是不同的。例如:floata[10],*p=a,*x;x=p+3;/*实际上是p加上3*4个字节赋给x,x依然指向数组的第三个分量*/2)自增自减运算指针变量自增、自减运算具有上述运算的特点,但有前置后置、先用后用的考虑,务请小心。例如:inta[10],*p=a,*x;x=p++;/*x指向数组的第一个分量,p指向数组的第二个分

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。