《c语言的指针》PPT课件.ppt

《c语言的指针》PPT课件.ppt

ID:52065117

大小:492.00 KB

页数:43页

时间:2020-03-31

上传者:U-25935
《c语言的指针》PPT课件.ppt_第1页
《c语言的指针》PPT课件.ppt_第2页
《c语言的指针》PPT课件.ppt_第3页
《c语言的指针》PPT课件.ppt_第4页
《c语言的指针》PPT课件.ppt_第5页
资源描述:

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

第六章指针 指针指针与数组的关系指针数组指针 变量地址内容x&x3px&px&x指针直接访问:通过变量名直接访问地址间接访问:把变量x的地址放到另一变量px中,使用时先找到px的地址,从中取出x的地址intx=3;printf(“%d”,x);指针变量地址另一变量的地址 变量地址内容x&x3px&px&x指针指针变量:存放地址的变量(px=&x)intx;x=3;printf(“%d”,x);指针变量地址另一变量的地址变量x的地址(&x)指向指向 指针变量的定义类型名*指针变量名;指针变量所指向变量的类型int*px;float*pf;char*pc;px是int指针,指向int变量pf是float型指针,指向float型变量pc是字符char型指针,指向char型变量 指针的基本操作1、&和*&:取地址运算符int*p,a=3;p=&a;把a的地址赋给p,即p指向a*:目标运算符(间接访问运算符)*p:p所指向的变量ap&aa3*p 例.指针运算main(){inta=3,*p;p=&a;printf(“%d,%d ”,a,*p);scanf(“%d”,&a);/*输入5*/printf(“%d,%d ”,a,*p);scanf(“%d”,p);/*输入7*/printf(“%d,%d ”,a,*p);*p=10;printf(“%d,%d ”,a,*p);}p&aa3*p输出:3,35,57,710,105710 指针运算注意事项当p=&a后,*p与a相同inta,*p=&a;定义*p=10;p所指向的变量3.&*p与p相同,是地址*&a与a相同,是变量p&aa*p10 指针运算注意事项4.inta,*p=&a;(*p)++等价于a++将p所指向的变量值加1*p++等价于*(p++)先取*p,然后p自加,此时p不再指向ap&a354a*pb 指针的基本操作2、赋值=int*p1,*p2,a=3;p1=&a;把a的地址赋给p1,即p1指向ap2=p1;p2也指向ap1&ap2&aa3*p1*p2 指针赋值main(){inta,b;int*p1,*p2;a=100;b=10;p1=&a;p2=p1;p1=&b;printf(“%d,%d ”,*p1,*p2);}p1p2a100b10输出:10,100 指针变量的初始化main(){inta=1,b=2;int*p1=&a,*p2=&b,*pt;printf(“%d,%d ”,*p1,*p2);pt=p1;p1=p2;p2=pt;printf(“%d,%d ”,*p1,*p2);}&ap1&bp21a2b输出:1,22,1&bp1&ap21a2b 指针变量的初始化main(){inta=1,b=2;int*p1=&a,*p2=&b,t;printf(“%d,%d ”,*p1,*p2);t=*p1;*p1=*p2;*p2=t;printf(“%d,%d ”,*p1,*p2);}p1&ap2&ba1b2输出:1,22,1p1&ap2&ba2b1 指针和一维数组指针、数组、地址间的关系 指针、数组、地址间的关系指针和数组有密切的关系任何由数组下标来实现的操作都能用指针来完成。数组名是一个指针它的值是数组首元素的地址&a[0]即它指向数组的首元素a[0]a[0]a[1]……a[i]a[9]ainta[10];a+1a+9 指针、数组、地址间的关系a[0]a[1]……a[i]*(a+i)a[9]int*p,a[10];p指向数组a的首元素:p=&a[0];或:p=a;p、aa+1a+i&a[i]a+9a[i]的地址相当于:&a[i]、a+i、p+ia[i]相当于:*(a+i)、*(p+i)、p[i]inta[20],*p=a;p+3相当于:p=(p)+3*sizeof(int)=(p)+3*2floatb[20],*pb=&b[0];pb+3相当于:pb=(pb)+3*sizeof(float)=(pb)+3*4 输出数组a所有元素for(i=0;i<10;i++)printf(“%d”,a[i]);for(p=a;p(高于)>=(高于或等于)==(指向同一位置)!=(不指向同一位置) 例:用指针方式实现字符串全部字符首尾颠倒。#include"string.h"main(){charss[80],*p,*q,*s=ss,c;intk;printf("Inputastring ");scanf("%s",s);printf("%s ",s);p=s;k=strlen(s);for(q=s+k-1;p

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

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

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