清华大学-C++课程-第10讲指针(上)-376102715讲课资料.ppt

清华大学-C++课程-第10讲指针(上)-376102715讲课资料.ppt

ID:58617392

大小:649.50 KB

页数:40页

时间:2020-10-20

清华大学-C++课程-第10讲指针(上)-376102715讲课资料.ppt_第1页
清华大学-C++课程-第10讲指针(上)-376102715讲课资料.ppt_第2页
清华大学-C++课程-第10讲指针(上)-376102715讲课资料.ppt_第3页
清华大学-C++课程-第10讲指针(上)-376102715讲课资料.ppt_第4页
清华大学-C++课程-第10讲指针(上)-376102715讲课资料.ppt_第5页
资源描述:

《清华大学-C++课程-第10讲指针(上)-376102715讲课资料.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第10讲指针(上)参考教材的10.1到10.3节指针是C++语言中的一个重要概念。掌握指针的用法,可使程序简洁、高效、灵活,不难学也不容易学。关键是理解下列故事含义。故事:很久很久以前,特务阿宝接到上级指令,要去寻找一个密钥。几经周折,线人告之:密钥藏在某墓地的看幕人所住的一栋小楼的房间中。一个风雨交加的夜晚,阿宝潜入了小楼,房间很多,不知该进哪一间,正在一筹莫展之际,忽然走廊上的电话铃声响起。艺高人胆大,阿宝毫不迟疑,抓起听筒,一个陌生人说:“去打开小姐卧室,那里有线索”。阿金疾步上楼,打开小姐卧室,用电筒一照,只见桌上赫然6个大字:1000房间。阿宝眼睛

2、一亮,迅速找到1000房间,取出重要数据66(密钥),完成任务。10.1指针的概念引进指针以后,变量的访问(访问是指取出其值或向它赋值)方式有两种:(1)直接访问,通过变量名访问,如通过变量名i直接访问(2)间接访问,通过该变量的指针(地址)来访问,如通过i_pointer访问变量i张强(父亲)张强(儿子)余雨(母亲)§10.2指针变量指针变量:存放其他变量地址(指针)的变量指针变量有三个属性:(1)指针变量指向的变量类型。如i_pointer指向的变量i是整型。(2)指针变量在内存中占多少内存单元。如i_pointer占两个内存单元,称为“近指针”,用ne

3、ar表示。如果该变量在内存中占4个内存单元,称为“远指针”,用far表示。如果未指定near或far,缺省是near(3)指针变量指向哪一个变量,即该指针变量的值(地址值)是多少。如i_pointer的值是2000§10.2指针变量指针变量定义的一般形式:基类型*标识符其中:“*”表示定义指针变量“标识符”是指针变量名“基类型”表示该指针变量所指向的变量类型例、inti,j;/*定义两个整型变量*/int*pointer_1,*pointer_2;float*pointer_3;char*pointer_4;指针赋值例inta=66;//定义一个整型变量ai

4、nt*p,*q;//定义p,q为指向整型变量的指针变量p=&a;//将变量a的地址赋给p,这时见图1q=p;//将p的值赋给q,见图2指针赋值§10.2指针变量指针变量的赋值:方法1:例、pointer_1=&i;pointer_2=&j;注意,指针变量中只能存放地址,不能将一个非地址类型的数据(如常数等)赋给一个指针变量,如:pointer_1=100;(错误)方法2:也可以在定义指针变量的同时指定其初值,如、inta;int*p=&a;§10.2指针变量指针变量的引用有两个运算符可以引用指针变量:(1)&:取地址运算符。如pointer_1=&i;(2)

5、*:指针运算符。用于访问指针变量所指向变量如果定义:inti,j;int*pointer_1;pointer_1=&i;指针变量pointer_1指向变量i,现在,对变量i、j有两种访问方式:(1)直接访问。如i=100;j=i。(2)通过指针变量间接访问。如:*pointer_1=100;j=*pointer_1;§10.2指针变量说明:定义指针变量时,还未规定它指向哪一个变量,此时不能用*运算符访问指针。只有在程序中用赋值语句具体规定其指向变量后,才能用*运算符访问所指向的变量.inta;int*p;(未规定指向哪个变量)*p=100;这种错误称为访问悬

6、挂指针(suspendedpointer)§10.2指针变量[例1]输入a和b两个整数,按先大后小的顺序输出a和b§10.2指针变量10.3指针变量作为函数的参数[例2]输入a和b两整数,按先大后小顺序输出a和b。10.3指针变量作为函数的参数程序执行过程的说明1、执行pointer_1=&a;pointer_2=&b后,pointer_1和pointer_2分别指向a和b.2、调用函数swap(pointer_1,pointer_2),生成两个形参p1和p2。实参pointer_1的值传送给形参p1,因此p1也指向a。同理,p2指向b。10.3指针变量作为

7、函数的参数3、在swap()函数内,把*p1和*p2的值进行交换,*p1是变量a,*p2是变量b,即把a和b的值进行交换。4、函数swap()调用结束后,形参p1、p2被释放,main中得到的a和b是已经被交换的值。10.3指针变量作为函数的参数intswap(int*p1,int*p2){int*p;*p=*p1;*p1=*p2;*p2=*p;}使用指针变量,应注意避免指针悬挂。10.3指针变量作为函数的参数函数swap()的形参是指针变量,有两种调用方式:swap(pointer_1,pointer_2);swap(&a,&b);均把变量a和b的地址传送

8、给形参,均能实现交换a和b的值。只有函数swap()

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

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

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