版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
指针运算符
&——取变量或存储单元的地址*——
取指针所指向的单元(变量)结论:*pt相当于a(*pt)++相当于a++&*pt=&a=pt*&a=*pt=a
&aapt*pta=1;例:inta,*pt;pt=&a;*pt=1;1编辑ppt-2-*p相当于变量a指针与变量inta,*p;p=&a;
2编辑ppt【例8-1】编写一个的子程序,子程序的功能为交换两个变量的值#include"stdio.h"voidswap(intx,inty);voidmain(void){ inta,b; printf("请输入交换的数值:"); scanf("%d%d",&a,&b); printf("交换前a=%d,b=%d\n",a,b); swap(a,b); printf("交换后a=%d,b=%d\n",a,b);}voidswap(intx,inty){inttemp;temp=x;x=y;y=temp;}单向值传递3编辑ppt【例8-1】编写一个的子程序,子程序的功能为交换两个变量的值(改进)#include<stdio.h>voidswap(int*x,int*y);voidmain(){inta,b;scanf("%d%d",&a,&b);printf("&a=%x,&b=%x\n",&a,&b);printf("调用前:a=%d,b=%d\n",a,b);swap(&a,&b);printf("调用后:a=%d,b=%d\n",a,b);}地址传递4编辑pptvoidswap(int*x,int*y){ intt;printf("\n-----swap-----\n");
printf("x=%x,y=%x\n",x,y);
t=*x;*x=*y;*y=t;printf("-----swap-----\n\n");}5编辑ppt例编写函数求出二维整型数组中元素的最大值及其下标号#include<stdio.h>#defineM3#defineN2intmaxarray(inta[M][N],intm,intn,int*pmaxi,int*pmaxj);voidmain(){inta[M][N]={1,2,3,4,5,6};intmax,maxi,maxj;max=maxarray(a,M,N,&maxi,&maxj);printf(“a[%d][%d]=%d”,max,maxi,maxj);}6编辑pptintmaxarray(inta[M][N],intm,intn,int*pmaxi,int*pmaxj){inti,j,max=a[0][0];for(i=0;i<m;i++)for(j=0;j<n;j++){if(max<a[i][j]){max=a[i][j];
*pmaxi=i;*pmaxj=j;}}returnmax;}7编辑ppt-8-a[i]*(a+i)p[i]*(p+i)数组元素表示法数组元素地址表示法&a[i]a+i&p[i]p+i指针与一维数组inta[10],*p=a;
8编辑ppt下标法main(){inta[10];i;for(i=0;i<10;i++)scanf("%d",&a[i]);for(i=0;i<10;i++)printf("%d",a[i]);}数组名计算地址法main(){inta[10];i;for(i=0;i<10;i++)scanf("%d",a+i);for(i=0;i<10;i++)
printf("%d",*(a+i));}例:输入输出整型数组a的全部元素。(假有10个元素)指针法main(){inta[10],i,*p;p=&a[0];for(i=0;i<10;i++)scanf("%d",p+i);for(i=0;i<10;i++)
printf("%d",*(p+i));}9编辑ppt【例】写一个函数,将包含n个元素的数组进行排序voidmain()/*冒泡*/{intn=10,a[10]={3,2,4,5,6,8,9,25,21,10};inti,j,temp;for(i=0;i<n-1;i++)for(j=0;i<n-i-1;j++)if(a[j]>a[j+1]){temp=a[j];a[j]=a[j+1];a[j+1]=temp;}}voidsort(inta[],intn)a[j]*(a+j)voidsort(int*a,intn)if(*(a+j)>*(a+j+1))
temp=*(a+j);*(a+j)=*(a+j+1);*(a+j+1)=temp;
10编辑ppt8.6指针与数组编程实例【例8-7】数列的中位数是数列中按照数值大小排在中间位置的数。例如:数列1,2,3,4,5的中位数为3。算法:先对数列排序,然后寻找排序序列的中位数。1111编辑ppt#include<stdio.h>voidsort(inta[],intn);voidmain(){intser[100]; inti,num;
printf("Inputlengthofserial:\n");
scanf("%d",&num);
printf("inputserialelements:\n");for(i=0;i<num;i++)scanf("%d",ser+i);
sort(ser,num);printf("Themedianofserialis%d\n",*(ser+num/2));}12编辑pptvoidsort(inta[],intn){inti,temp;int*p;for(i=0;i<n-1;i++)
for(p=a;p<a+n-i-1;p++)if(*p>*(p+1))
{temp=*p; *p=*(p+1); *(p+1)=temp;}}13Inputlengthofserial:5inputserialelements:1-3236715Themedianofserialis2313编辑ppt8.7指针与字符串字符串表示形式用字符数组实现main(){charstring[]=“IloveChina!”;printf(“%s\n”,string);printf(“%s\n”,string+7);}stringIstring[0]string[1]lstring[2]ostring[3]vstring[4]estring[5]string[6]Cstring[7]hstring[8]istring[9]nstring[10]astring[11]!string[12]\0string[13]string+7IloveChina!China!14编辑ppt用字符指针实现main(){char*cp=“IloveChina!”;printf(“%c\n”,*cp);
printf(“%s\n”,cp);cp+=7;
printf(“%s\n”,cp);}cpIloveChina!\0cpIIloveChina!China!15编辑pptffc0Iffc1loveChina!\0......stringcharstring[20]=“IloveChina!”;char*cp=“IloveChina!”;cp!anihCevolI存放常量的空间aa00aa0016编辑ppt字符型指针变量与字符数组charstr[20];与
char*cp;str由若干元素组成,每个元素放一个字符
cp只是一个指针变量,存放字符串首地址
charstr[20];str=“IloveChina!”;char*cp;cp=“IloveChina!”;str是地址常量;cp是地址变量cp接受键入字符串时,必须先开辟存储空间例charstr[10];scanf(“%s”,str);()而char*cp;scanf(“%s”,cp);()改为:char*cp,str[10];cp=str;scanf(“%s”,cp);()17编辑pptcharstr[]={“Hello!”};charstr[]=“Hello!”;
charstr[]={‘H’,‘e’,‘l’,‘l’,‘o’,‘!’};char*cp=“Hello”;inta[]={1,2,3,4,5};int*p={1,2,3,4,5};charstr[10],*cp;inta[10],*p;str=“Hello”;cp=“Hello!”;a={1,2,3,4,5};p={1,2,3,4,5};分析下列用法正确与否18编辑ppt【例8-9】写程序,判断一个单词是否为回文。回文指的是单词按从前到后与从后到前的顺序读都相同,例如“level”就是是一个回文单词。#include<stdio.h>#include<stdlib.h>#defineMAXLEN80voidmain(){char*str; intflag;
intpal(char*); if((str=(char*)
malloc(MAXLEN))==NULL){ printf("Memoryallocationerror!\n");exit(0);} 19编辑pptprintf("Inputaword:\n");scanf("%s",str);while(*str!='#'){flag=pal(str);if(flag)printf("%sisapalindrome!\n",str);elseprintf("%sisn'tapalindrome!\n",str);printf("Inputaword:\n");scanf("%s",str);}free(str);}20编辑pptintpal(char*str)/*判断回文*/{ char*p,*q;
p=str;q=str; while(*q!=‘\0’)/*p指向首部,q指向尾部*/ q++; q--; while(p<q)if(*p==*q){ p++;q--; } elsebreak; return(p>=q);}level\0pqpqpq21编辑pptC语言字符串操作的库函数1.字符串连接函数strcatchar*strcat(char*s1,char*s2){char*p,*q;p=s1;q=s2;while(*(p+1)!=0)p++;while(*q!=0){*p=*q;p++;q++;}*p=0;returns1;}22编辑pptC语言字符串操作的库函数2.字符串拷贝函数strcpychar*strcpy(char*s1,char*s2)功能:把字符串s2复制到字符串s1中。例如:
charstr[80]; strcpy(str,"abcd");23编辑pptC语言字符串操作的库函数3.字符
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年湖北中医药高等专科学校单招职业适应性测试题库有答案详解
- 2026年湖南软件职业技术大学单招职业适应性测试题库与答案详解
- 2026年南昌健康职业技术学院单招职业技能考试题库附答案详解
- 2025年广西西林县句町咖啡发展贸易有限公司冬季公开招聘工作人员的备考题库附答案详解
- 2025年中国能建陕西院智能配网公司招聘备考题库及答案详解(考点梳理)
- 2025年西安外国语大学第二批专任教师岗位公开招聘34人的备考题库及答案详解参考
- 2026年河北软件职业技术学院单招职业适应性测试题库带答案详解
- 2026年黑龙江生物科技职业学院单招综合素质考试题库与答案详解
- 2026年湖南有色金属职业技术学院单招综合素质考试题库附答案详解
- 2025年柏乡县公开招聘综治中心工作人员10人备考题库及完整答案详解一套
- OpenClaw发展研究1.0报告 by 清新研究
- 2025届北汽集团全球校园招聘正式开启(1000+岗位)笔试参考题库附带答案详解
- 文明礼仪教育主题活动方案
- 电子行业跟踪报告:OpenClaw助力AIAgent技术范式升级
- GB/T 1534-2026花生油
- 2026年新能源产业发展政策解读试题
- 2026天津市津鉴检测技术发展有限公司招聘工作人员14人笔试备考试题及答案解析
- 2025geis指南:软组织肉瘤的诊断和治疗课件
- 2026广东汕头市公安局招聘警务辅助人员152人考试参考试题及答案解析
- 施工机械安全防护方案
- 危险品全员安全培训方案课件
评论
0/150
提交评论