C程序设计基础讲义7.ppt

C程序设计基础讲义7.ppt

ID:51588885

大小:200.50 KB

页数:41页

时间:2020-03-24

C程序设计基础讲义7.ppt_第1页
C程序设计基础讲义7.ppt_第2页
C程序设计基础讲义7.ppt_第3页
C程序设计基础讲义7.ppt_第4页
C程序设计基础讲义7.ppt_第5页
资源描述:

《C程序设计基础讲义7.ppt》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库

1、程序设计语言C信息与计算科学教研室GCG@STAFF.SHU.EDU.CN第七章指针§1指针概念§2指针变量定义§3指针与一维数组§4指针与函数§5指针与二维数组§6指针与字符串§1指针概念•内存,变量,数组,地址都与其存储地址有关.inta=10,*p=&a;printf(“%x%d”,p,*p)•地址—变量数据在内存存贮位置&a•指针—存贮地址的变量p指针p变量a地址2000地址&a=2002指针变量的内存单元中存放的是一个变量的地址变量a的地址赋给指针变量p指针变量p指向变量a地址2002变量值10§1指针概念1.变量的指针变量的指针指的就是该变量的首

2、地址。2.指针变量指针变量是以指针(地址)为值的一种变量。3.指针指向变量若将变量x的地址赋值变量p,则变量p指向变量x。4.指针变量的类型指针变量类型是所指向变量的类型。不同类指针不能互相赋值。5.空指针-表示指向空、没有指向或指向结束等含义,记为NULL。NULL是一个指针常量,对应0地址,在头文件stdio.h中定义。§2指针变量定义指针变量定义的一般形式:数据类型*指针变量名;例:int*p;/*定义p是指向整型变量的指针变量*/float*y;/*定义y是指向实型变量的指针变量*/char*s;/*定义s是指向字符型变量的指针变量*/定义指针变量时

3、可以对它初始化inti;int*p=&i;printf(%d%x,i,&i);printf(%d%x%x,*p,p,&p);•取址运算符&:取出内存单元的地址例:p=&i;i的地址赋给指针p,即指针p指向了变量i。•取值运算符*:取出指针所指向变量的值例:y=*p;指针p指向变量值赋给变量y*p=x;变量x的值赋给指针指向的变量•指针定义中int*p:定义指针程序使用中y=*p:指针取值运算•赋值=inta,*b,*c;b=&a;b=c;(取得地址)关系><==inta[9];*p=a[i];*q=a[j];p==q;p>q;(比较地址)算术+-++--q-

4、p;q;p++;(求解地址)1若P=ffb6则:1)q=p+4*2=ffb6+8=ffbe(H)2)q++=ffbe+2=ffc1(地址+地址?)3)q-p=(ffbe-ffb6)/2=44)p+4==q(p=a[2];q=a[6])2若intx,y,*p=&x;则:y=*p+5;y=++*p; /*++*p相当于++(*p)*/y=*p++; /*相当于y=*p;p++*/例1指针的概念main(){intx,*p;p=&x;x=20;printf("x:%d",x);printf("*p:%d",*p);printf("&x:%x",&x);

5、printf("p:%x",p);printf("&p:%x",&p);}运行结果x:20*p:20&x:ffe0p:ffe0&p:ffe2例2分析下列程序的运行结果main(){inta=10,b=8,c,d,*p1,*p2;p1=&a;p2=&b;c=*p1+*p2;d=*p1-*p2;printf("a+b=%d",c);printf("a-b=%d",d);}结果:a+b=18a-b=2§3指针与一维数组指针p指向一维数组a[]即p=&a[0]inta[9],*p=a;(下列指向相同)p=a,*p=a[0];*p(i)=*(a+i),

6、p[i]=a[i];区别:数组a是常量,不能进行增量运算。a+i为a[i]的地址,*a就是a[0],*(a+i)就是a[i]而指针p是变量,可作增量运算p++。§3指针与一维数组§3指针与一维数组下标法与指针法表示的等价性1.数组名作为指针常量若inta[5],*p;则数组名a表示数组首地址,p=&a[0];等价于p=a;2.在指针中使用下标运算符下标运算符等同于取值运算符,即p[2]等价于*(p+2),以下4个式子等价:a[2]*(p+2)*(a+2)p[2]§3指针与一维数组例3数组排序法1数组法inti,j,a[10],x,*p=a;for(i=0;i

7、<9;I++)for(j=I+1;j<10;j++)if(a[I]

8、],x,*p=a;for(i=0;i<10;i++)

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

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

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