- 1、本文档共13页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
《高级语言程序设计》第六章拓展资源-奥鹏教育.doc
奥鹏远程教育中心助学服务部
PAGE
心系天下求学人 Page PAGE 13 of NUMPAGES 13 专业 专注 周到 细致
西南交《高级语言程序设计》 第六章 指针初步 拓展资源
C语言指针编程说明
【例 1】
main()
{ int a,b;
int *pointer_1, *pointer_2;
a=100;b=10;
pointer_1=a;
pointer_2=b;
printf(%d,%d\n,a,b);
printf(%d,%d\n,*pointer_1, *pointer_2);
}
对程序的说明:
1) 在开头处虽然定义了两个指针变量pointer_1和pointer_2,担它们并未指向任何一个整型变量。只是提供两个指针变量,规定它们可以指向整型变量。程序第5、6行的作用就是使pointer_1指向a,pointer_2指向b。
2) 最后一行的*pointer_1和*pointer_2就是变量a和b。最后两个printf函数作用是相同的。
3) 程序中有两处出现*pointer_1和*pointer_2,请区分它们的不同含义。
4) 程序第5、6行的“pointer_1=a”和 “pointer_2=b”不能写成“*pointer_1=a”和 “*pointer_2=b”。
请对下面再的关于“”和“*”的问题进行考虑:
1) 如果已经执行了“pointer_1=a;”语句,则*pointer_1是什么含义?
2) *a含义是什么?
3) (pointer_1)++和pointer_1++的区别?
【例 2】输入a和b两个整数,按先大后小的顺序输出a和b。
main()
{ int *p1,*p2,*p,a,b;
scanf(%d,%d,a,b);
p1=a;p2=b;
if(ab)
??? {p=p1;p1=p2;p2=p;}
printf(\na=%d,b=%d\n,a,b);
printf(max=%d,min=%d\n,*p1, *p2);
}
函数的参数不仅可以是整型、实型、字符型等数据,还可以是指针类型。它的作用是将一个变量的地址传送到另一个函数中。
【例 3】题目同例 2,即输入的两个整数按大小顺序输出。今用函数处理,而且用指针类型的数据作函数参数。
swap(int *p1,int *p2)
{int temp;
temp=*p1;
*p1=*p2;
*p2=temp;
}
main()
{
int a,b;
int *pointer_1,*pointer_2;
scanf(%d,%d,a,b);
pointer_1=a;pointer_2=b;
if(ab) swap(pointer_1,pointer_2);
printf(\n%d,%d\n,a,b);
}
对程序的说明:
swap是用户定义的函数,它的作用是交换两个变量(a和b)的值。swap函数的形参p1、p2是指针变量。程序运行时,先执行main函数,输入a和b的值。然后将a和b的地址分别赋给指针变量pointer_1和pointer_2,使pointer_1指向a,pointer_2指向b。
接着执行if语句,由于a〈b,因此执行swap函数。注意实参pointer_1和pointer_2是指针变量,在函数调用时,将实参变量的值传递给形参变量。采取的依然是“值传递”方式。因此虚实结合后形参p1的值为a,p2的值为b。这时p1和pointer_1指向变量a,p2和pointer_2指向变量b。
接着执行执行swap函数的函数体使*p1和*p2的值互换,也就是使a和b的值互换。
函数调用结束后,p1和p2不复存在(已释放)如图。
最后在main函数中输出的a和b的值是已经过交换的值。
请注意交换*p1和*p2的值是如何实现的。请找出下列程序段的错误:
swap(int *p1,int *p2)
{int *temp;
*temp=*p1;????? /*此语句有问题*/
*p1=*p2;
*p2=temp;
}
请考虑下面的函数能否实现实现a和b互换。
swap(int x,int y)
{int temp;
temp=x;
x=y;
y=temp;
}
如果在main函数中用
您可能关注的文档
- S3C44B0X存储控制器功能及应用开发.ppt
- SAS教程所用版本为SASforWindows6.doc.doc
- Science科学中山所博一刘性仁92261505-联合大学.doc
- SELECT字段列表.ppt
- Servlet的方法-多库文档.ppt
- SHM在仙侠Server端的应用.ppt.ppt
- SIP消息之逐项讲解-中国科技网.ppt
- SMT插件线案例.ppt
- Snort简介-请大家用telnet登录.ppt
- Sol-gel合成与分析.doc
- 鲁科版高中物理选择性必修第三册精品课件 第3章 热力学定律 分层作业13 热力学第二定律.ppt
- 鲁科版高中物理选择性必修第一册精品课件 第2章 机械振动 分层作业12 科学测量用单摆测量重力加速度.ppt
- 鲁科版高中物理选择性必修第一册精品课件 第2章 机械振动 第4节 科学测量用单摆测量重力加速度——分层作业.ppt
- 鲁科版高中物理选择性必修第一册精品课件 第2章 机械振动 分层作业13 生活中的振动.ppt
- 鲁科版高中物理选择性必修第一册精品课件 第2章 机械振动 第5节 生活中的振动——分层作业.ppt
- 鲁科版高中物理选择性必修第一册精品课件 第5章 光的干涉、衍射和偏振 第1节 光的干涉.ppt
- 鲁科版高中物理选择性必修第三册精品课件 第4章 原子结构 分层作业16 原子的核式结构模型.ppt
- 鲁科版高中物理选择性必修第三册精品课件 第1章 分子动理论与气体实验定律 分层作业4 科学探究气体压强与体积的关系.ppt
- 鲁科版高中物理选择性必修第一册精品课件 第4章 光的折射和全反射 第1节 光的折射 (2).ppt
- 鲁科版高中物理选择性必修第一册精品课件 第4章 光的折射和全反射 第1节 光的折射.ppt
文档评论(0)