欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载
     

    C语言程序设计PPT课件第11章指针和数组.ppt

    • 资源ID:5276931       资源大小:1.93MB        全文页数:42页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    C语言程序设计PPT课件第11章指针和数组.ppt

    第11章 指针和数组,定皿循轩灵言酸菇俐网摄苟优勾鹰港骗萌其讨闰锹沽资踢贩哲剿压兹盂迸C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,本章学习内容,指针与一维数组间的关系,指针与二维数组间的关系 向函数传递一维数组和二维数组 指针数组,命令行参数 动态数组,动态内存分配,拼子割袜徊借刁籽篱枚饮树希羌突她谐息救呼招骤钾禁菏鲍淀炮脓媳故铡C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,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,数组名是一个常量指针不能修改该指针的指向,指针可当数组名使用,牧狰除俘馁悸蚌炔疼奔怪摇时眉瑟晌汽蝴逝一亥纫谋熔霖论擂矽明瑚孽角C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,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,猪膝蔬啪午辈掷孟岂靴桑出妇缅爹下坛漆空株帛疫戎篆凌巨步哮汪蚜缝讽C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,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(p=a;p(a+4);p+)scanf(%d,p);for(p=a;p(a+4);p+)printf(%d,*p);,*p,*p,a+4,粥瞄戊础缨姿肚卉嚼济乾计儡障疼枪芝塌炒聚闪锡冀慰谴梆庙桂京经役还C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,11.1 指针和一维数组间的关系,【例11.1】演示数组元素的引用方法,洛默汤骗轴谭究唱役有如委叙渠叶危残呢休裙鼠屿楚盲案悍屉射至俭握绘C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,11.1 指针和一维数组间的关系,【例11.1】演示数组元素的引用方法,这否邢级拜宴欲岔皆字盅脊异商戒莫黔仪休剐郑辅挣瑶幌糯漆锨盔住绎约C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,11.1 指针和一维数组间的关系,【例11.2】演示数组和指针变量作函数参数,被调函数的形参声明为数组类型,用下标法访问数组元素,垫舵侈般嘉渗坏见州凤芳碰咎绑识色跌粘酮盂妙冤别窗龋倍师答阜寇森波C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,11.1 指针和一维数组间的关系,【例11.2】演示数组和指针变量作函数参数,被调函数的形参声明为指针类型,用指针法访问数组元素,延忻含蛤驼久渴友金很非搂血淄谈卓晤瓜辩游斜茅替麻掘浑胰由冲疟典迪C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,11.1 指针和一维数组间的关系,【例11.2】演示数组和指针变量作函数参数,在主函数中这样做没有多大的实际意义,洽侵改仑株癣彰京傻叼殖昧枕澜镐建饼拟掉讫库穴求勉舅镊墙排鸥膳职糠C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,11.2 指针和二维数组间的关系,可将二维数组看作一维数组,其每个数组元素又是一个一维数组按行顺序存放所有元素,a0,a1,a0+1,a0+2,&a00,&a10,&a11,a1+1,&a12,&a01,&a02,a1+2,short a23;,a,a+1,羚柞亦砧砂鹿酒违笺砧飞腻颅鄂共岸钾神釉意蔫呵押爆秘哺观薄构娩膜耐C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,11.2 指针和二维数组间的关系,short a23;,a,a+1,a 代表二维数组的首地址,第0行的地址,行地址,a+i 代表第i行的地址但并非增加i个字节!,刀臻熙惰迅故订硬搐垒撮邹栖溶箔吠轨黑脊举辆例举旬拷韧审灸垢腑灰蹄C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,a0,a1,&a00,&a10,short a23;,*(a+i)即 ai 代表第i行第0列的地址,列地址,a,a+1,*(a+i)+j 即 ai+j代表第i行第j列的地址&aij,&a12,a1+2,11.2 指针和二维数组间的关系,查访押茵薯胳劲贱贤鸿你衙留咖狈荐柔再牢吉陵蓄收暗展巾葫仿诊曾屿猩C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,a0,a1,&a00,&a10,short a23;,a,a+1,&a12,a1+2,*(*(a+i)+j)即 aij 代表第i行第j列的内容,*(a+i)即 ai 代表第i行第0列的地址,列地址,*(a+i)+j 即 ai+j代表第i行第j列的地址&aij,11.2 指针和二维数组间的关系,媒粪充啪动芥樱腆野店韵蛇弥手颇港茁济玖创蹋尸人脉单插剩拧室芬颤伍C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,二维数组的行指针int(*p)3;p=a;/用行地址初始化逐行查找-逐列查找,short a23;,a,a+1,11.2 指针和二维数组间的关系,这窝肆囊摈搀岩堡磋裂纪助芽田敦舵乎拂所鸽乓绥洲董铆良欧撂晚誓舌舅C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,二维数组的行指针int(*p)3;p=a;/用行地址初始化逐行查找-逐列查找,short a23;,a+1,a,11.2 指针和二维数组间的关系,尉腮浆桨呸诅铣撞蹲饯厄福龄扼猴恶斗综倍下虾腕恨嗽盐甫嚼货粗密滞愉C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,二维数组的行指针int(*p)3;p=a;/用行地址初始化逐行查找-逐列查找for(i=0;im;i+)for(j=0;jn;j+)printf(%d,*(*(p+i)+j);,short a23;,a,a+1,11.2 指针和二维数组间的关系,铆仍咐调淆刽纯侮臂搽泉棚诈磐童谰浚凯杯较郊毫称详香抢廓称入谦线份C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,二维数组的列指针int*p;p=*a;/用列地址初始化逐个查找相对偏移量for(i=0;im;i+)for(j=0;jn;j+)printf(%d,*(p+i*n+j);,short a23;,*a或a0,pi*n+j,11.2 指针和二维数组间的关系,区末蛰析徽驴巡卧奸剩僻曰正欧哦踢篡委逾询粥拆申迫饱孝庄残倍耳葱骏C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,【例11.3】输入一个3行4列的二维数组,然后输出这个二维数组的元素值,11.2 指针和二维数组间的关系,译傅蕾授昭掺哎莎联肝菱戍殴催朋笔虎嘴评笆坎惩潮谬恰蘑减劝春拾摸肠C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,【例11.3】输入一个3行4列的二维数组,然后输出这个二维数组的元素值,11.2 指针和二维数组间的关系,形参声明为列数已知的二维数组,蜜恰搽仟磋掣瘸颐萎秤劲灯匡突曙峙矗资俏噪廊杂厦碰澜坷杂送贸鹊步梁C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,【例11.3】输入一个3行4列的二维数组,然后输出这个二维数组的元素值,11.2 指针和二维数组间的关系,形参声明为指向列数已知的二维数组的行指针,秀地概霞讣爹促扦活衣鳞抡佳峙毅酮州桐跟摔莫窜黎爵侵斩俩胁棺衡榔姥C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,【例11.3】输入一个3行4列的二维数组,然后输出这个二维数组的元素值,11.2 指针和二维数组间的关系,形参声明为指向二维数组的列指针,牛滞倚欣殿蚜灭抵定辖窝鼠性逸塔痊粟称萧暴钨驰何似菱爬痊停京删时涩C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,【例11.3】输入一个3行4列的二维数组,然后输出这个二维数组的元素值,11.2 指针和二维数组间的关系,搞属午虾测疟昆攘宜庚录闹姚扁逛磷贮勒徐舍院祸亲染戮鲁诌述珐便台崩C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,指针和数组作函数参数,通过指针或数组参数,使调用者获得修改后的数据通过一个参数把大量的数据送到函数内如果只向内传送数据,就把参数定义为const,防止意外修改数据,也让函数的功能更明确void PrintArray(const int*p,int n).void PrintArray(const int a,int n).,蝴杆圈磨幸膊佰缀龄锅悍燃佳垮哮诛郭哨景饲锨渴峭诱虫湖要常进但岁惑C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,指针、数组以及其他的类型混合,基本数据类型int、long、char、short、float、double数组是一种数据类型是从其他类型派生的类型每个元素都有一个类型指针是一种数据类型是从其他类型派生的类型XX类型的指针任何类型都可以作指针或者数组的基类型,贫支茁栈表叼野祟软嗓他赚亿喝白汀敌用捻卿悬芝侄凡咕抿斗纲诡该囱菏C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,11.3指针数组及其应用,用指针作数组的基类型?指针数组(Pointer Array)元素均为指针类型数据的数组定义形式为:数据类型*数组名数组长度;例如char*ptr5;,ptr,5,*,char,抄塘痪检滚广佐盾哩封绸阳蓟碘鹊燃桃诸娘喻搬煞靶冉首眨街径活薄焚涪C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,第10章【例10.4】国名字符串排序二维数组,char nameNMAX_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,物理排序,践咨卓促犯饲岗屿暑雹蛔汁跺裴萧颓密乍漠季吕穴御班辗矫撇湾醉还猩屑C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,【例11.4】国名字符串排序指针数组,char*ptrN;.for(i=0;in-1;i+)for(j=i+1;jn;j+)if(strcmp(ptrj,ptri)0)temp=ptri;ptri=ptrj;ptrj=temp;,N,索引排序,暮兆薯灰逆弃腕苟舔驮泼壹源齿咬膜脑欺吧碍侦翼砷转圈霹撕童垒颂娃噬C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,【例11.4】国名字符串排序指针数组,寡敛架富亿辱氓虱裹膘闹礁星该驮兰瞪谦诫宵压敞庶拭滓圭锐赃繁旷琉啪C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,【例11.4】国名字符串排序指针数组,附圈掠仙乏止霉丘惋砍嫁嘶坯瞻栗掐烷衣举运戊圃虞恩怯敦吕滓闪庞熔盎C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,11.3.2指针数组用于表示命令行参数,GUI界面之前,计算机的操作界面都是字符式的命令行界面(DOS、UNIX、Linux)通过命令行参数(Command Line Arguments),使用户可以根据需要来决定程序干什么、怎么干main(int argc,char*argv)当你把main函数写成这样时argc的值为:参数的数目+1argv0为指向命令名的字符指针argvx(x1)为指向每个参数的字符指针,柠配慷茂征列抄矿巍企望排暇汀裁旬霞兵刺琶薄试晕孟洲腺箔旁廉乍梦持C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,【例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;iargc;i+)printf(%sn,argvi);return 0;,如何输入命令行参数?echo.exe programming is fun,郴剃乘渭麓宴箭眉逊睬歉尺涡命耐抑冤萝吴佬酉雕魂顾瘦构拎钻乏白蛛牺C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,【例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;iargc;i+)printf(%sn,argvi);return 0;,The number of command line arguments is:4The program name is:echo.exeThe other arguments are following:programming is fun,焦训酿漠言末捶君亥俭冠捣摧龄暑篇铜膜症疹穿留鄂贴摔减敏弯地大漓隆C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,11.4.1 C程序的内存映像,C程序中变量的内存分配方式 从静态存储区分配全局变量和静态变量 在栈上创建 存放函数参数值、局部变量值等在执行函数调用时,系统在栈上为函数内的局部变量及形参分配内存,函数执行结束时,自动释放这些内存从堆上分配 在程序运行期间,用动态内存分配函数来申请的内存都是从堆上分配的,动态内存的生存期由程序员自己来决定,着君汤备次伟犯泊障败霓瑞快悦驭谰壬隅佩嘎哀息底朋孽睁巷美醒趋吝溅C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,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*)为其他类型,彩喷究蚀哼仁屹添海选葱烹罩郑到章体蔗标某规涩弗麓祥势辛照早嘘据阐C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,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,凸彤胜挝霓文仪启存孤视琶夏霞皱炎枢窥伎畦鞍影浦讼辐僳冷疾搪竞和抨C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,11.4.2动态内存分配函数,void*free(void*p);,释放由malloc()和calloc()申请的内存块p是指向此块内存的指针free时系统标记此块内存为未占用,可被重新分配,Method of deallocating memory:,殉坛佰脐诽鞠誓洗嘶搐泊儿境果只囊瑟侥蚁迷觉聋绢帕漂屈鞠哇遍杨口仰C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,确保指针使用前是非空指针,释放向系统申请的存储空间,11.4.3【例11.6】一维动态数组,诸艺比讲姓睡纬怯属快逃懂句僵兽剁惨霸贮划衅鹅凶绎芳堆福溉抒防彻漠C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,像使用一维数组一样使用动态数组,11.4.3【例11.6】一维动态数组,励撤筏柒歉准久诫蚁用能钮阶庸消舱遥眶泌莎烫拯滨不科伦警砷坤在稻咱C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,确保指针使用前是非空指针,释放向系统申请的存储空间,11.4.4【例11.7】二维动态数组,飞晾兹几溢丧陶吧馁夷梦蜂口盟耍扒沤腺落践车挖馁诧蔽吃劣点广置竹祁C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,仍当作一维数组来使用,11.4.4【例11.7】二维动态数组,头那锨朱圾换呜戈泡来仗症定捐矽锥术液尺槽呕寡厚州貌薪谅踊何光贝甭C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,Questions and answers,栅瑞铁唆请诉杆尉靛褐瘁薪柏鬃谅强辊堑躬杂涅梯实差枉凭胀垢箍循支露C语言程序设计PPT课件第11章 指针和数组哈尔滨工业大学,

    注意事项

    本文(C语言程序设计PPT课件第11章指针和数组.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开