资源描述:
《第9章-指针ppt课件(全)》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、第9章指针第9章_指针ppt课件(全)第9章指针(pointer)9.1指针的基本概念9.2指针与一维数组9.3指针与二维数组9.4指针与字符串9.5指针与函数9.6指针数组与多级指针第9章_指针ppt课件(全)9.1指针的基本概念#includevoidmain(){inta=10;floatx=20.5;……}内存中每个字节有一个编号-----地址9.1.1变量的地址及指针地址也称为指针第9章_指针ppt课件(全)8.1.2指针变量1.指针变量的定义inta;intp=&a;或inta,pa=&a;2
2、.指针变量的引用(1)&:取地址运算符(2):指针运算符(或称间接访问运算符)例如:inta=6,pa;…...…...2000200420062005整型变量a6指针变量pa200120022003例如:inta=6,pa;pa=&a;2000例如:inta=6,pa;pa=&a;pa=28;28第9章_指针ppt课件(全)【例9.0】使两个指针变量交换指向。#includevoidmain(){inta=10,b=20,p1=&a,p2=&b,p;printf("a=%d,b=%d,p1=%d,p2=
3、%d",a,b,p1,p2);p=p1;p1=p2;p2=p;printf("a=%d,b=%d,p1=%d,p2=%d",a,b,p1,p2);}运行结果如下:a=10,b=20,p1=10,p2=20a=10,b=20,p1=20,p2=10第9章_指针ppt课件(全)3.使用指针应注意的几种情况(1)在指针变量中只能存储地址,例如:inta,p,q;p=2000;/不正确/q=&a;/正确/(2)语句“inta,p=&a;”与“inta,p;p=&a;”是等价的但“inta,p;p=&a;”中的赋值语句是错误
4、的。(3)悬挂指针指针变量的值不确定的指针称为悬挂指针。如:intp;p=56;第9章_指针ppt课件(全)9.1.3指针运算1.指针之间的赋值运算2.指针与整数的加、减运算3.指针相减运算4.指针之间作关系运算例如:floatx,p1,p2=&x;p1=p2;例如:inta[4]={10,11,12,13},pa;pa=a;pa=pa+1;如果两个指针指向同一数组的元素上,则两指针相减,其绝对值的物理意义是两指针间相距多少个元素。指针间作关系运算,可以判断指针是否指向同一数组或同一元素上。第9章_指针ppt课件(全)9.
5、1.4指针作为函数的参数【例9.1】编写函数swap1,交换两个变量的值。#includevoidmain(){floata,b;voidswap1(floatx,floaty);scanf("%f%f",&a,&b);swap1(&a,&b);printf("a=%.1fb=%.1f",a,b);}voidswap1(floatx,floaty){floatt;t=x;x=y;y=t;}程序运行情况:3.45.6↙a=5.6b=3.4第9章_指针ppt课件(全)9.2指针与一维数组9.2.1一维数组
6、元素的表示1.下标表示法和指针表示法inta[5]={10,11,12,55,14};下标表示法:a[i]指针表示法:(a+i)第9章_指针ppt课件(全)【例9.补充】查看数组元素的地址及数组元素的值。#includevoidmain(){inti,a[4]={10,11,12,13};for(i=0;i<4;i++)printf("%x,%d",a+i,(a+i));}运行结果:ffd2,10ffd4,11ffd6,12ffd8,13第9章_指针ppt课件(全)2.用指针变量引用一维数组元素【例9
7、.2】用指针变量给数组赋值,输出各元素值及其和。#includevoidmain(){inta[10],i,j,s;intp;for(p=a;p8、使它与数组中的第1个元素的值交换位置,其余数据位置不变,并输出该组数。#includevoidmain(){inti,t,a[5],p,max;for(i=0;i<5;i++)scanf("%d",a+i);max=a;for(p=a+1;p