计算机二级(指针).ppt
上传人:yy****24 上传时间:2024-09-10 格式:PPT 页数:47 大小:331KB 金币:16 举报 版权申诉
预览加载中,请您耐心等待几秒...

计算机二级(指针).ppt

计算机二级(指针).ppt

预览

免费试读已结束,剩余 37 页请下载文档后查看

16 金币

下载此文档

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

第6章指针6.1变量的地址和指针变量的概念…说明:6.2指针变量的定义和引用请思考:请思考:inta;【例6.2】给指针变量赋值示例【例6.3】非法使用指针示例。#include<stdio.h>main(){int*p,a=1;float*q;*p=5;q=&a;printf("%x,%d,%d,%f",p,*p,*q,*q);}【例6.4】用指针变量的引用方法编写程序。输入三个整数,输出其中最大数(算法参见例3.6)。#include<stdio.h>main(){inta,b,c,max,*p,*q,*w,*m;p=&a;q=&b;w=&c;m=&max;printf("Inputa,b,c:");scanf("%d%d%d",p,q,w);*m=*p;if(*m<*q)*m=*q;if(*m<*w)*m=*w;printf("%d,%d,%d,%d\n",*p,*q,*w,*m);}6.3指针和一维数组6.3.1使指针变量指向一维数组inti,a[5];inti,a[5];p说明:指针指向连续存储单元时,能进行加或减一个整数的运算保证运算后的地址值不超出原连续存储单元的地址范围p+2、q-2是合法运算p+5、q-3是不合法运算6.3.2对指针的算术运算(2)当两个指针指向同一个连续存储单元时,对这两个指针可以进行相减的运算(2)当两个指针指向同一个连续存储单元时,对这两个指针可以进行相减的运算【例6.6】移动指针和比较指针的示例。【例6.7】有10个元素的数组,完成以下功能:12345678910for(p=a;p-a<10;p++)printf("%4d",*p);【例6.8】假设数组中存放互不相同的10个整数,要求输入一个整数,查找与该值相同的数组元素,如果存在,输出其下标值,否则,输出相应信息(参见例5.9)。main(){intk,*p,a[10]={1,2,3,4,5,6,7,8,9,10};printf("Inputk:");scanf("%d",&k);for(p=a;p-a<10;p++)printf("%4d",*p);p-a?【例6.9】在数组中找出最大元素,并与第一个元素对调(算法参见例5.11)第一步:求最大值所在元素下标#include<stdio.h>main(){inttemp,*p,*q,a[10]={8,9,1,2,5,10,7,3,4,6};for(p=a;p-a<10;p++)printf("%4d",*p);printf("\n");temp=a[0];a[0]=*q;*q=temp;6.4指针和字符串6.4.1通过字符数组名引用字符串#include<stdio.h>#include<string.h>main(){inti;chara[8]="First";puts(a);strcpy(a,"Second");for(i=0;*(a+i)!='\0';i++)putchar(*(a+i));}6.4.2通过指针变量引用字符串#include<stdio.h>main(){char*p="First";puts(p);p="Second";for(;*p!='\0';p++)putchar(*p);}【例6.12】编写求字符串长度的程序(参见例5.20_2)#include<stdio.h>main(){}【例6.13】编写字符串复制的程序#include<stdio.h>main(){chara[50],b[80],*p,*q;p=a;q=b;printf("Inputdata:");gets(a);while(*p!='\0'){*q=*p;p++;q++;}*q='\0';puts(b);}【例6.14】编写字符串连接的程序(参见例5.22_2)【例6.15】编写字符串比较的程序(参见例5.23_2)实例的部分程序