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

类型c语言第十一章(苏小红版)学习资料.ppt

  • 上传人:w****g
  • 文档编号:10712012
  • 上传时间:2025-06-11
  • 格式:PPT
  • 页数:42
  • 大小:2.09MB
  • 下载积分:12 金币
  • 播放页_非在线预览资源立即下载上方广告
    配套讲稿:

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

    特殊限制:

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

    关 键  词:
    语言 第十一 苏小红版 学习 资料
    资源描述:
    Click to edit Master title style,Click to edit Master text styles,Second level,Third level,Fourth level,Fifth level,*,*,/42,c语言第十一章(苏小红版),11.1,指针和一维数组间的关系,int,a4=1,2,3,4;,0,x0037b000,a0,0,x0037b004,0,x0037b008,0,x0037b00B,a,.,.,1,int,*,pa=a;,pa,int,*,pa=,2,3,4,a1,a2,a3,数组名是一个常量指针,不能修改该指针的指向,指针可当数组名使用,11.1,指针和一维数组间的关系,int,a4=1,2,3,4;,0,x0037b000,a0,0,x0037b004,0,x0037b008,0,x0037b00B,a,.,.,1,int,*,pa=a;,pa,int,*,pa=,2,3,4,a1,a2,a3,数组元素的等价引用形式,ai,*(a+i),pai,*(pa+i),a+1,*(a+1),pa0,*(pa+2),pa+2,*pa,11.1,指针和一维数组间的关系,int,a4=1,2,3,4;,0,x0037b000,a0,0,x0037b004,0,x0037b008,0,x0037b00B,a,.,.,1,p,2,3,4,a1,a2,a3,for,(i=0;i4;i+),scanf(%d,for,(i=0;i4;i+),printf(%d,ai);,for,(p=a;p(a+4);p+),scanf(%d,p);,for,(p=a;p(a+4);p+),printf(%d,*p);,*p,*p,a+4,11.1,指针和一维数组间的关系,【,例,11.1】,演示数组元素的引用方法,11.1,指针和一维数组间的关系,【,例,11.1】,演示数组元素的引用方法,11.1,指针和一维数组间的关系,【,例,11.2】,演示数组和指针变量作函数参数,被调函数的形参声明为数组类型,用下标法访问数组元素,11.1,指针和一维数组间的关系,【,例,11.2】,演示数组和指针变量作函数参数,被调函数的形参声明为指针,类型,,用指针法访问数组元素,11.1,指针和一维数组间的关系,【,例,11.2】,演示数组和指针变量作函数参数,在主函数中这样做没有多大的实际意义,11.2,指针和二维数组间的关系,可将二维数组看做一维数组,其每个数组元素又是一个一维数组,按行顺序存放所有元素,a00,a01,a02,a10,a11,a12,a0,a1,a0,+1,a0,+2,&,a0,0,&,a1,0,&,a1,1,a1,+1,&,a1,2,&,a0,1,&,a0,2,a00,a0,a01,a02,a10,a1,a11,a12,a,a1,+2,short,a23;,a,a,+1,11.2,指针和二维数组间的关系,a00,a01,a02,a10,a11,a12,a00,a0,a01,a02,a10,a1,a11,a12,a,short,a23;,a,a,+1,a,代表,二,维数组的首地址,,第,0,行,的地址,,行地址,a+i,代表,第,i,行,的地址,但并非增加,i,个字节!,a00,a01,a02,a10,a11,a12,a0,a1,&,a0,0,&,a1,0,a00,a0,a01,a02,a10,a1,a11,a12,a,short,a23;,*,(a,+i),即,ai,代表,第,i,行,第,0,列,的地址,,,列地址,a,a,+1,*,(a,+i)+j,即,ai+j,代表,第,i,行,第,j,列,的地址,&aij,&,a1,2,a1,+2,11.2,指针和二维数组间的关系,a00,a01,a02,a10,a11,a12,a0,a1,&,a0,0,&,a1,0,a00,a0,a01,a02,a10,a1,a11,a12,a,short,a23;,a,a,+1,&,a1,2,a1,+2,*,(*(a,+i)+j),即,aij,代表,第,i,行第,j,列,的,内容,*,(a,+i),即,ai,代表,第,i,行,第,0,列,的地址,,,列地址,*,(a,+i)+j,即,ai+j,代表,第,i,行,第,j,列,的地址,&aij,11.2,指针和二维数组间的关系,二维数组的,行,指针,int,(,*,p)3;,p=a;,/,用行地址初始化,逐行查找,-,逐列查找,p,short,a23;,a00,a01,a02,a10,a11,a12,a,a+1,11.2,指针和二维数组间的关系,二维数组的,行,指针,int,(,*,p)3;,p=a;,/,用行地址初始化,逐行查找,逐列查找,p,short,a23;,a00,a01,a02,a10,a11,a12,a+1,a,11.2,指针和二维数组间的关系,二维数组的,行,指针,int,(,*,p)3;,p=a;,/,用行地址初始化,逐行查找,-,逐列查找,for,(i=0;im;i+),for,(j=0;jn;j+),printf(,%d,*(*(p+i)+j),);,short,a23;,a00,a01,a02,a10,a11,a12,p,a,a+1,11.2,指针和二维数组间的关系,二维数组的,列,指针,int,*,p;,p=,*,a;,/,用列地址初始化,逐个查找,相对偏移量,for,(i=0;im;i+),for,(j=0;jn;j+),printf(,%d,*(p+,i*n+j,),);,p,short,a23;,a00,a01,a02,a10,a11,a12,*a,或,a0,p,i*n+j,11.2,指针和二维数组间的关系,【,例,11.3】,输入一个,3,行,4,列的二维数组,然后输出这个二维数组的元素值,11.2,指针和二维数组间的关系,【,例,11.3】,输入一个,3,行,4,列的二维数组,然后输出这个二维数组的元素值,11.2,指针和二维数组间的关系,形参声明为列数已知的二维数组,【,例,11.3】,输入一个,3,行,4,列的二维数组,然后输出这个二维数组的元素值,11.2,指针和二维数组间的关系,形参声明为指向列数已知的二维数组的行指针,【,例,11.3】,输入一个,3,行,4,列的二维数组,然后输出这个二维数组的元素值,11.2,指针和二维数组间的关系,形参声明为指向二维数组的列指针,【,例,11.3】,输入一个,3,行,4,列的二维数组,然后输出这个二维数组的元素值,11.2,指针和二维数组间的关系,指针和数组作函数参数,通过指针或数组参数,使调用者获得修改后的数据,通过一个参数把大量的数据送到函数内,如果只向内传送数据,就把参数定义为,const,,防止意外修改数据,也让函数的功能更明确,void,PrintArray(,const,int*,p,int,n).,void,PrintArray(,const,int,a,int,n).,指针、数组以及其他的类型混合,基本数据类型,int,、,long,、,char,、,short,、,float,、,double,数组是一种数据类型,是从其他类型派生的类型,每个元素都有一个类型,指针是一种数据类型,是从其他类型派生的类型,XX,类型的指针,任何类型都可以作指针或者数组的,基类型,11.3,指针数组及其应用,用指针作数组的基类型,?,指针数组,(,Pointer Array,),元素均为指针类型数据的数组,定义形式为:,数据类型 *,数组名,数组长度,;,例如,char*,ptr5;,ptr,5,*,char,【,例,10.4】,国名,字符串排序,二维数组,char,name,N,MAX_LEN,;,.,for,(i=0;in-1;i+),for,(j=i+1;jn;j+),if,(,strcmp(strj,stri)0,),strcpy(temp,stri);,strcpy(stri,strj);,strcpy(strj,temp);,MAX_LEN,N,交换字符数组中的字符串,物理排序,【,例,11.4】,国名,字符串排序,指针数组,char,*ptrN;,.,for,(i=0;in-1;i+),for,(j=i+1;jn;j+),if,(,strcmp(ptrj,ptri)1),为指向每个参数的字符指针,【,例,11.5】,演示命令行参数与,main,函数各形参之间的关系,int,main(int argc,char*argv),int,i;,printf(The number of command line arguments is:%dn,argc);,printf(The program name is:%sn,argv0);,if,(argc 1),printf(The other arguments are following:n);,for,(i=1;i 1),printf(The other arguments are following:n);,for,(i=1;i,argc,;i+),printf(%sn,argvi,);,return 0;,The number of command line arguments is:4,The program name is:,echo.exe,The other arguments are following:,programming,is,fun,11.4,动态数组,11.4.1 C,程序的内存映像,C,程序中变量的内存分配方式,从静态存储区分配,全局变量和静态变量,在栈上创建,存放函数参数值、局部变量值等,在执行函数调用时,系统在栈上为函数内的局部变量及形参分配内存,函数执行结束时,自动释放这些内存,从堆上分配,在程序运行期间,用动态内存分配函数来申请的内存都是从堆上分配的,动态内存的生存期由程序员自己来决定,11.4.2,动态内存分配函数,Two primary methods of allocating memory:,void*,malloc(,unsigned,int,size);,void*,calloc(,unsigned int,num,unsigned,int,size);,#,include,#,include,void*,类型的指针可以指向任意类型的变量,通常强转,(Type*),为其他类型,11.4.2,动态内存分配函数,Two primary methods of allocating memory:,void,*malloc(,unsigned,int,size);,void,*calloc(,unsigned int,num,unsigned,int,size);,向系统申请大小为,size,的内存块,把首地址返回,若申请不成功则返回,NULL,向系统申请num个size大小的内存块,把首地址返回,若申请不成功则返回NULL,11.4.2,动态内存分配函数,void,*,free(,void,*p);,释放由,malloc(),和,calloc(),申请的内存块,p,是指向此块内存的指针,free,时系统标记此块内存为未占用,可被重新分配,Method of deallocating memory:,p,n,确保指针使用前是非空指针,释放向系统申请的存储空间,11.4.3,长度可变的一维动态数组,【,例,11.6】,一维动态数组,p,n,像使用一维数组一样,使用动态数组,11.4.3,长度可变的一维动态数组,【,例,11.6】,一维动态数组,确保指针使用前是非空指针,释放向系统申请的存储空间,p,m*n,11.4.4【,例,11.7】,二维动态数组,仍当,做,一维数组来使用,p,m*n,11.4.4【,例,11.7】,二维动态数组,Questions and answers,此课件下载可自行编辑修改,仅供参考!感谢您的支持,我们努力做得更好!谢谢,
    展开阅读全文
    提示  咨信网温馨提示:
    1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
    2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
    3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
    4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前可先查看【教您几个在下载文档中可以更好的避免被坑】。
    5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
    6、文档遇到问题,请及时联系平台进行协调解决,联系【微信客服】、【QQ客服】,若有其他问题请点击或扫码反馈【服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【版权申诉】”,意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:0574-28810668;投诉电话:18658249818。

    开通VIP折扣优惠下载文档

    自信AI创作助手
    关于本文
    本文标题:c语言第十一章(苏小红版)学习资料.ppt
    链接地址:https://www.zixin.com.cn/doc/10712012.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