C语言课件(part12)指针.ppt

C语言课件(part12)指针.ppt

ID:58885787

大小:459.00 KB

页数:43页

时间:2020-09-30

C语言课件(part12)指针.ppt_第1页
C语言课件(part12)指针.ppt_第2页
C语言课件(part12)指针.ppt_第3页
C语言课件(part12)指针.ppt_第4页
C语言课件(part12)指针.ppt_第5页
资源描述:

《C语言课件(part12)指针.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第十一章指针(第二讲)《主要教学内容》指针与数组指针与字符串指针与函数指针数组与多级指针要求:掌握指针与数组、字符串之间的联系11.3指针与数组指向数组元素的指针变量例intarray[10];int*p;p=&array[0];p=array;或int*p=&array[0];或int*p=array;array[0]array[1]array[2]array[3]array[9]...整型指针p&array[0]p数组名是表示数组首地址的地址常量指针的运算指针变量的赋值运算p=&a;(将变量a地址p)p=array;(将数组array首地

2、址p)p=&array[i];(将数组元素地址p)p1=p2;(指针变量p2值p1)不能把一个整数p,也不能把p的值整型变量如inti,*p;p=1000;()i=p;()指针变量与其指向的变量具有相同数据类型指针变量的算术运算:pipid(i为整型数,d为p指向的变量所占字节数)p++,p--,p+i,p-i,p+=i,p-=i等若p1与p2指向同一数组,p1-p2=两指针间元素个数(p1-p2)/dp1+p2无意义例p指向float数,则p+1p+14例p指向int型数组,且p=&a[0];则p+1指向a[1]例i

3、nta[10];int*p=&a[2];p++;*p=1;例inta[10];int*p1=&a[2];int*p2=&a[5];则:p2-p1=3;a[0]a[1]a[2]a[3]a[4]a[5]a[6]a[7]a[8]a[9]a数组pp+1,a+1p+i,a+ip+9,a+91指针变量的关系运算若p1和p2指向同一数组,则p1p2表示p1指的元素在后p1==p2表示p1与p2指向同一元素若p1与p2不指向同一数组,比较无意义p==NULL或p!=NULL数组元素表示方法a[0]a[1]a[2]a[3]a[9].

4、..aa+9a+1a+2地址元素下标法a[0]a[1]a[2]a[9]a[0]a[1]a[2]a[3]a[9]...pp+9p+1p+2地址元素指针法*p*(p+1)*(p+2)*(p+9)[]变址运算符a[i]*(a+i)a[i]p[i]*(p+i)*(a+i)*a*(a+1)*(a+2)*(a+9)p[0]p[1]p[2]p[9]a[0]a[1]a[2]a[3]a[4]例数组元素的引用方法main(){inta[5],*pa,i;for(i=0;i<5;i++)a[i]=i+1;pa=a;for(i=0;i<5;i++)printf(

5、"*(pa+%d):%d",i,*(pa+i));for(i=0;i<5;i++)printf("*(a+%d):%d",i,*(a+i));for(i=0;i<5;i++)printf("pa[%d]:%d",i,pa[i]);for(i=0;i<5;i++)printf("a[%d]:%d",i,a[i]);}12345pa例inta[]={1,2,3,4,5,6,7,8,9,10},*p=a,i;数组元素地址的正确表示:(A)&(a+1)(B)a++(C)&p(D)&p[i]数组名是地址常量p++,p--()a++,a-

6、-()a+1,*(a+2)()例voidmain(){inta[]={5,8,7,6,2,7,3};inty,*p=&a[1];y=(*--p)++;printf(“%d”,y);printf(“%d”,a[0]);}输出:56pp58762730123456a例注意指针变量的运算6main(){inti,*p,a[7];p=a;for(i=0;i<7;i++)scanf("%d",p++);printf("");for(i=0;i<7;i++,p++)printf("%d",*p);}例注意指针的当前值p=a;pp58762730123

7、456apppppp指针变量可以指到数组后的内存单元数组名作函数参数数组名作函数参数,是“地址”传递数组名作函数参数,实参与形参的对应关系实参形参数组名指针变量数组名指针变量数组名数组名指针变量指针变量例将数组a中的n个整数按相反顺序存放ij379110675420123456789ijijijji11760594723实参与形参均用数组voidinv(intx[],intn){intt,i,j,m=(n-1)/2;for(i=0;i<=m;i++){j=n-1-i;t=x[i];x[i]=x[j];x[j]=t;}}main(){inti,a[

8、10]={3,7,9,11,0,6,7,5,4,2};inv(a,10);printf("Thearrayhasbeenreverted

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

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

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