版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
指针实现学生综合测评成绩管理指针与数组复习数组a[0]a[1]a[2]a[3]a[4]复习:一维数组在内存中的存放方法?
inta[5];数组元素的地址:&a[i]数组首地址:&a[0]或a指针与一维数组inta[5];//定义一个5个元素的整型数组int*p; //定义一个指向整型变量的指针变量p=a;在数组中,数组名表示该数组的首地址,即第一个元素的地址,它是一个常量。因此p=a;与p=&a[0];等价,都代表将数组首地址赋值给指针变量p,即指针变量p指向a数组的第一个元素。如图所示。指针与一维数组在p指向首地址前提下,如依次进行以下操作,指针变量p将不断地指向新的数组元素。(1)p++;则表示p向后移动一个位置,指向a[1](2)p--;则表示p向前移动一个位置,重新指向a[0](3)p=p+3;则表示p向后移动三个位置,指向a[3]指针与一维数组1、指针与一维数组的对应关系
inta[10],*p=a;使p指向a数组的第一个元素a[0]各元素的指针按存储单元递增a[0]a[2]a[4]a[3]a[6]a[7]a[1]a[5]a[8]a[9]memorypp+1p+2p+92、用指针访问数组的一般形式对下标为i的元素访问:
a[i],*(a+i),*(p+i)对a[i]的地址表示:
&a[i],a+i,p+i
指向数组访问数组的两种方式:下标方式,指针方式指针与一维数组(1)下标法(常用,很直观)#include<stdio.h>main(){intscore[10],i;printf("请输入10个学生的成绩\n");for(i=0;i<10;i++)scanf("%d",&score[i]);printf("输出的10个学生的成绩为\n");for(i=0;i<10;i++)printf("%3d",score[i]);printf("\n");}(2)用数组名计算数组元素的地址。(效率与下标法相同,不常用)#include<stdio.h>main(){intscore[10],i;printf("请输入10个学生的成绩\n");for(i=0;i<10;i++)scanf("%d",&score[i]);printf("输出的10个学生的成绩为\n");for(i=0;i<10;i++)printf("%3d",*(score+i));printf("\n");}指针与一维数组(3)用指针访问各元素。(常用,效率高)#include<stdio.h>main(){intscore[10],*p,i;printf("请输入10个学生的成绩\n");for(i=0;i<10;i++)scanf("%d",&score[i]);printf("输出的10个学生的成绩为\n");for(p=score;p<score+10;p++)printf("%3d",*p);printf("\n");}
指针与字符数组
(一)字符串的表示形式1.用字符数组实现#include<stdio.h>main(){charstring[]="IloveChina!";printf("%s\n",string);}2.用字符指针实现
#include<stdio.h>main(){char*string="IloveChina!";printf("%s\n",string);}一、字符串的表现形式
C语言中,有两种方式可以实现字符串:字符数组、字符指针。
指针与字符数组
举例
#include<stdio.h>main(){char*ps="thisisabook";intn=10;ps=ps+n;printf("%s\n",ps);}输出字符串中n个字符后的所有字符。ps+10ps
举例
在输入的字符串中查找有无‘k’字符。#include<stdio.h>main(){charst[20],*ps;inti;printf("inputastring:\n");ps=st;scanf("%s",ps);for(i=0;ps[i]!='\0';i++)if(ps[i]=='k'){printf("thereisa'k'inthestring\n");break;}if(ps[i]=='\0')printf("Thereisno'k'inthestring\n");}
举例
将字符串a复制到字符串b。方法一#include<stdio.h>voidmain(){chara[]="Iamaboy.",b[20],*p1,*p2;inti;p1=a;p2=b;
for(;*p1!='\0';p1++,p2++)*p2=*p1;*p2='\0';printf("stringais:%s\n",a);printf("stringbis:%s\n",b);printf("\n");}方法二#include<stdio.h>voidmain(){char*a="Iamaboy.",*b;
b=a;printf("stringais:%s\n",a);printf("stringbis:%s\n",b);printf("\n");}注意:若a,b都是字符指针,则可以用b=a,即将a的地址赋给b,但是若a,b是字符数组,则不能用b=a,应用strcpy(b,a)
比较
字符数组与字符串指针变量的区别存放的是首地址字符数组字符串指针变量每个元素放一个字符不能整体赋值chars[6];s=“abcde”;/*不对*/可以
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年广西农业职业技术学院高职单招笔试职业技能测验历年参考题库含答案解析
- 2026年山西林业职业技术学院高职单招笔试化学历年参考题库含答案解析
- 瓜果植物课件
- 高更作品的课件
- 狗狗种类介绍课件
- 故宫英文演讲课件
- 改革我国卫生政策课件
- 各国天气介绍课件
- 谷歌上找资源课件
- 公关社交技巧分享课件
- 2025年阳光学院辅导员招聘考试笔试试题及答案解析
- 2025年石河子大学马克思主义基本原理概论期末考试真题汇编
- 66kV及以下架空电力线路设计标准
- 浙江省强基联盟2025-2026学年高二上学期11月期中联考数学试卷(含答案)
- 导游仪容仪表培训大纲
- 广东中考化学三年(2023-2025)真题分类汇编:专题02 物质的分类、物质的组成和结构(解析版)
- 中国融通集团2025届秋季校园招聘笔试历年参考题库附带答案详解
- 2013-2022北京高中合格考化学汇编:海水中的重要元素-钠和氯
- 生殖医院管理制度内容
- 小贴士养成良好生活习惯预防脑血管病
- DLT817-2014 立式水轮发电机检修技术规程
评论
0/150
提交评论