分享
分销 收藏 举报 申诉 / 43
播放页_导航下方通栏广告

类型《C语言学习与应用》教学课件06指针操作.pdf

  • 上传人:曲****
  • 文档编号:225306
  • 上传时间:2023-03-08
  • 格式:PDF
  • 页数:43
  • 大小:2.27MB
  • 下载积分:19 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

    如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。

    特殊限制:

    部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。

    关 键  词:
    C语言学习与应用 语言 学习 应用 教学 课件 06 指针 操作
    资源描述:
    C语言学习与应用教学课件在本学习任务中,我们将学习指 针变量的定义、赋值和使用,通过若 干应用举例和任务的完成掌握指针在 主函数与函数间的多值传递。知识要求 掌握指针变量的定义方法。掌握指针变量的基类型以及指针变量赋值的方法。了解指针能参与的运算。理解变量的直接访问和间接访问。掌握以形参为指针的自定义函数。能力要求占能够读懂使用指针变量的程序。6能够用指针访问变量。6能够借用指针的灵活地编写程序。占能够调试含指针变量的程序。6能够运用指针灵活地书写函数和主函数。01指针1.变量的地址和指针一个变量实际是代表内存中的某个存储单元,内存是以 字节为单位的一片连续存储空间,每个字节有一个编号,即内存地址,变量的地址就是变量的指针。我们可以通过 两种方式访问变量:一是直接存取方式,即直接按变量的 地址存取变量值;二是间接存取方式,它是先通过某变量 获得变量的地址,再获取变量值。专用于存放地址的变量称为指针变量。指针变量也是变量,要 先定义后使用。为了与一般变量区分开,定义指针变量时要加星号。例如:int*p,*s,k=20;定义了两个指针变量p、s和一个普通变量k 指针移动的最小单位是存储单元,定义时的类型称为基类型。基类型为int的指针变量p,当有p+1时,此处的1表示一个整型的存 储单元(4个字节),只能给p赋整型变量的地址。如有double*q;”,当有q+1时,此处的1表示一个double型的存储单元(8个字 节),只能给q赋double型变量的地址。指针变量也在内存中存放,也有地址。存放指针变量地址的变 量在被定义时要有两个星号,因此在定义指针变量时出现两个以上 的星号是正确的,如“int*t;”。3,给指针变量赋值给指针变量赋值的方法如下。i nt k=20,*p,*q;P=&k;将变量的地址赋给指针变量q=P;在指针变量之间赋值P=NULL 给指针变量赋空值,与p3 0,或p=0等价微课学习任务六指针操作.主函数与函数间的多值传递 悠.胃指针变量赋值一般变量不同,是一个指针变量;二是出现在可执行语句中,星号“钎 是间接运算符,表示该指针对应的变量。例如:int*p,i=10;变量的定义,*p中的星号表示p是指针变量P=&i;为指针变量赋值*p=56;此处*p表示p所指变量i,等价于厂56,星号是间接运算符2)*与&的抵消4.指针变量的操作程序代码“int k,*p;p=&k;”中,*p就是k,即*&k就是k,*与&是抵消的。作为间接运算符的“钎,它的右边只能是地址变量即指针,而&的右边只能 是变量,如写作&*%“*”的右边不是地址变量就错了。另外,还可以在定义指针变量的同时为指针变量赋值。例如:i nt i,*p;P=&i;以上这两句可以合并为一条,int i=10,*p=&i;定义p的同时,给p赋值,即变量的初始化“*P=&i”只能出现在定义语句中。指针的运算L 1.指针变量参与的运算指针变量力口(减)整数指针变量关系运算符指针变量指针变量减指针变量有如下程序代码:int a 10,*p二&a 0,*q二&a 9;则 p+3是&a 3,(q-2)是&a 7*(p+3)是a 3,*(q-2)是a 7。/a 10是数组指针变量参与的运算有如下程序代码。int i=10,*p二&i;则*P就是i,因此“i=i+l;”可写作“*p=*p+l;、“*p+=l;、“+*p;或(*p)+;。而*p+的含义是:获得*pB,执行“p=p+i操作,指针指向下一个存储 单元。应用举例67对地址的理解#include stdio.hvoid main()int a 10,*p=&a 0,*q=&a 9;printff4n%x,%x,%dn,p,q,(q-p);getchar();输出:22ff40,22ff64,9可以看出a 0的地址是22ff40,整型每个变量占四个字节,因此a 9的地址是 22ff40+4*9,将4*9(即36)转换为十六进制数24,于是有22ff40+24,得到a 9 的地址正是22ff64。两个指针相减得到的是两地址间存储单元的个数9。写出以下程序代码的输出 结果。问题6-量写出退下程序代码的输出结果#include Hstdio.hHvoid main()int a,b,*p=&a,*q=&b;a=4,b=3;printf(H%d,%d n”,*p,*q);getchar();输出:.应用举例6-2指针的比较运算#include stdio.hvoid main()int a 10=1,2,3,4,5,6,7,8,9,10,*p=&a 0/q=&a 9;while(q=p)两指针的比较运算printf(%d*q-);先取*q,再执行q=q-lgetchar();)输出:109 876543 2 1从上述程序可以看出,可通过“while(q=p)”来判断指针q是否到达p位置,从 而使指针不断移动位置,把数组a 10由后至前输出。模仿应用举例6-2顺序输出 数组中的各元素。问题2 模仿应用举例6号顺序输出数组中的#include nstdio.hH void main()int a E10=1,2,3,4,5,6,7,8,9,10,*p=&a 0/q=&a 9;while(.)printf(n%d.);getchar();序执行结果:.任务实施任务一指针操作基础训练工作内容及要求:通过若干程序的阅读理解和填空掌握指针在程序设计中的基础应用。编程训练677借用指针变量的数据输入/输出操作。#include stdio.h void main()int x,*p;p=&x;printf(请输入一个整数:);scanf(n%d,.);请勿填写&xprintf(Hx=%d nH,.);请勿填写x编程训练6-1-2借用指针变量实现的按顺序输出数据。include stdio.h void main()int x,y,.;定义两个指针变量pmax和pminprintf(请输入两个整数:);.输入两个整数赋给x和yif(xy)较大值的地址赋pmax屐小值地址赋pmin编程训练else)printf(按由大到小的顺序输出是:%d,%dn,*pmax,*pmin);任务二 主函教与函数间的多值传遹工作内容及要求:通过若干训练掌握指针在函数中的灵活应用。编程训练6-2-1主函数与函数间的值传递。#include stdio.h void swap(int a,int b)int t;t=a;a二b;b=t;)编程训练void main()int x,y;printf(请输入两个数:”);scanf(n%d%dn,&x,&y);printf(66x=%d,y=%dnn,x,y);swap(x,y);printf(,x=%d,y=%dn,x,y);编程训练6-2-2实参是变量的地址。更改训练6-2-1中的程序代码,实参用变量的地址,形参就是能够接收地址的指针变量,将程序代码补 充完整,使程序的运行结果如下。输入:56 78输出:x=56,y=78x=78,y=56编程训练#includenstdio.hvoid swap(.,int*b)形参是指针变量int t;仁*a;此处的*a就是主函数中的x,使主函数中的x,y交换编程训练void main()int x,y;printf(”请输入两个整数:”);scanf(n%d%dn,&x,&y);printf(”x=%d,y=%dn”,x,y);swap(.,&y);实参是变量的地址printf(x=%d,y=%dnn,x,y);)编程训练6-2-3两数和的函数。1)以下函数的功能是返回两数之和,请将主 函数补充完整,运行程序并填写输出内容。#include stdio.hint fun(int a,int b)int t;仁 a+b;return t;)编程训练void main()int x,y,z;printf(请输入两个数:”);printf(n%d+%d=%dn,x,y9.);)输入:5 6输出:.J编程训练6-2-4同时求两数和与两数差,实现主函数与函数间的多值传递。#include stdio.hvoid fun(int a,int b,int*c,int*d)void main()int x,y,zl,z2;2编程训练printf(请输入两个数:);scanf(n%d%du,&x,&y);fun(x,y,.,.);printf(%d+%d=%dn,x,y,z 1);printf(n%d-%d=%dnn,x,y,z2);)输入:5 6输出:tie任务三函数返回值是指针6-3-1阅读理解程序。#include stdio.hint*fmax(int*a,int*b)if(*a*b)return a;else return b;)void main()I_任务三函数返回值是指针int x,y,*p;printf(“请输入两个数:“scanf(n%d%dn,&x,&y);p=fmax(&x,&y);printf(较大数:%dn,*p);输入:5 6输出:.编程训练6-3-2返回较小值的地址#include stdio.hint*fmin(int*a,int*b)void main()scanf(n%d%du,&x,&y);.二.(&x,&y);编程训练6-3-3功能扩充#include stdio.hint*finin(int*a,int*b)void main()编程训练分别输入:56 78 分别输出:7856祝你进步!谢谢!
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:《C语言学习与应用》教学课件06指针操作.pdf
    链接地址:https://www.zixin.com.cn/doc/225306.html
    页脚通栏广告

    Copyright ©2010-2025   All Rights Reserved  宁波自信网络信息技术有限公司 版权所有   |  客服电话:0574-28810668    微信客服:咨信网客服    投诉电话:18658249818   

    违法和不良信息举报邮箱:help@zixin.com.cn    文档合作和网站合作邮箱:fuwu@zixin.com.cn    意见反馈和侵权处理邮箱:1219186828@qq.com   | 证照中心

    12321jubao.png12321网络举报中心 电话:010-12321  jubao.png中国互联网举报中心 电话:12377   gongan.png浙公网安备33021202000488号  icp.png浙ICP备2021020529号-1 浙B2-20240490   


    关注我们 :微信公众号  抖音  微博  LOFTER               

    自信网络  |  ZixinNetwork