- 1、本文档共55页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
c语言8课件
第八章 应用指针编制程序
8.1 指针概述
8.2 指针变量
8.3 指针与数组
8.4 指针与函数
8.5 指针数组
8.6 指向指针的指针;§ 8.1 指针概述;储备知识2——数据的存取过程;储备知识2——数据的存取过程; C 提供了另一种方式,将变量 k的地址存放在另一个变量处(假定为pk),通过访问 pk,就可以间接地访问变量k,这种方式称为间接访问。;3、间接访问:多次直接访问方式;;二、对指针的深入理解
——指针可以指向所有类型的数据;4、指针指向指针:指针型指针(存放某指针的地址)。;§ 8.2 指针变量;二、 指针变量的初始化;变量必须与说明过的类型应一致;三、指针变量的引用 ;例1: 运用指针变量间接访问变量的值。 ;例3: 改变指针变量指向的变量的值。 ;#include stdio.h
main( )
{ int a=3,b=5;
int *ptr1=a, *ptr2=b, *t;
t=ptr1; ptr1=ptr2; ptr2=t;
printf(ptr1: value %d\n,*ptr1);
printf(ptr2: value %d\n,*ptr2);
};四、指针变量的运算 ;2.与指针变量相关的其它运算;(2) 指针变量的减法运算 ;五、指针变量作函数的参数; swap(int *p1, int *p2)
{ int pk;
pk=*p1; *P1=*P2; *p2=pk;
printf(“2: %d,%d\n”, *p1, *p2); }
main( )
{ int a , b; int *po1,*po2;
scanf(“%d,%d”,a,b); //a=3,b=5
printf(“1: %d,%d\n”,a,b);//3 5
po1=a,po2=b;
if(ab) swap( po1,po2 );
printf(“3:%d,%d\n”,a,b); };9;1、 功能函数 swap(a,b)的作用是实现两个数的交换,当参数为指针 型时,实参,形参都为指针变量。
2、 当函数被调用时,实参值传给形参(值传递)结果为:形参指针p1,实参 指针po1指向同一个变量a。
3、 当函数调用结束时,交换的是指针所指的变量的 值。pk=*p1;*p1=*p2;*p2=pk;此时,pk是一个int 变量,不是指针。;一、 用指针引用数组元素;;main( )
{ static int a [ ]={ 1,2,3,4,5,6};
int i; for(i=0;i6;i++)
printf(“%d”,a[i ]);
};;#include stdio.h
main( )
{ int n,a[10];
int *ptr=a;
for(n=0;n=9;n++)
scanf(%d,ptr++);
printf(output!\n);
for(n=0;n=9;n++)
printf(%4d,*ptr++);
printf(\n); };运行上述程序均可获得如下结果:
1 2 3 4 5 6 7 8 9 0 回车
output!
1 2 3 4 5 6 7 8 9 0;练习3:仔细阅读下面程序,分析指针的当前值。
main( )
{ int i,*p,a[7];
p=a;
for(i=0;i7;i++)
scanf(%d,p++);
printf(\n);
for(i=0;i7;i++,p++)
printf(%d,*p); };main( )
{ int i,*p,t,a[5];
for(p=a;pa+5;p++)
scanf(%d,p);
printf(\n);
p=a[0];
for(i=1;i5;i++)
if (*pa[i])
{p=a[i];t=i;}
printf(%d,%d,*p,t); };main()
{ int n,i,j,k,x,a[10];
int *p=a;
for(i=0; i10;i++)
scanf(%d,p+i);
for(k=1;k10;k++)
for(j=9,i=0;i10-k;i++,j--)
if(*(p+j)*(p+j-1))
{ x=*(p+j);
*(p+j)=*
您可能关注的文档
- 2016-2017学年人教版必修三:第10课第1框《加强思想道德建设》(48张)课件.ppt
- 2015年全国普通高考新课标2卷地理部分答案与解析(高清版)课件.ppt
- 2014防溺水教育主题班会课件.ppt
- 2016《名师面对面》高考物理大一轮复习:第6章 第3讲电容器 带电粒子在电场中运动课件.ppt
- 2015年安全生产月培训课件.ppt
- 2016《名师面对面》高考化学一轮复习 第8章 第25讲 难溶电解质溶解平衡课件.ppt
- 2016届第三课 文化多样性与文化传播课件.ppt
- 2016届《创新设计》高考物理大一轮复习精讲:数字资料包 2-06-1-思想方法:力分解法与力效果分解课件.ppt
- 2016中考精英总复习政治(人教版)习题:第二十二讲_选择希望人生(共38张PPT)课件.ppt
- 2015版【师说·雄关漫道】(打开师说读课堂)高考历史二轮专题复习:史观解读与运用课件.ppt
文档评论(0)