c++第12章_1_运行原理_ok.docVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
第十二章 运行原理 一、大纲 了解在C/C++中内存的分配方式 了解C语言中内存分配和释放函数的使用 掌握C++语言中内存分配和释放运算符的使用 二、实验目标: 了解C/C++中内存分配的方式和含义。 掌握使用C++中的new和delete进行动态内存的分配和释放(其中包括分配和释放内存以及动态数组)。 理解使用new和delete对char字符指针的操作。 三、实验方式: 要求学生自己独立完成 四、任务 4.1任务1:使用new和delete完成动态内存的分配和释放(时间:25分钟) 4.1.1 任务描述 依次按照下面要求完成操作: 定义一个int类型的指针pn,并初始化为NULL。 使用new为pn分配一块动态的适合存储一个int值的内存。 通过指针pn,将整数25保存到刚刚分配的内存中。 分配显示*pn和pn的值,分析输出的结果。 为指针pn所指向的内存重新赋值100。 继续显示*pn和pn的值,分析输出结果。 使用delete释放为指针pn分配的动态内存。 显示使用delete后,*pn和pn的值,并分析结果。 将指针pn的值赋值NULL,分析原因并打印指针pn的值。 定义一个double指针pf,并在定义时使用new为其分配一块适合存储double类型的内存,并在分配时将10.25赋值给动态内存。 分别显示pf和*pf的值。 释放指针pf所指向的动态内存。 并将内存释放后的pf赋值为NULL。 显示指针pf的值。 4.1.2 任务目的 掌握使用C++中的new和delete进行动态内存的分配和释放。 掌握在使用new进行动态内存分配的过程中指针的含义,以及它的值的变化。 理解在使用delete进行内存释放后,指针是不会被清零的概念。 掌握在使用new分配时和分配后赋值的操作。 4.1.3 任务要求 要求按照上面任务描述,完成实现,并理解上下语句间的联系。 总结关于任务中的知识点,理解各条语句的含义。 4.1.4 难点提示 4.2任务2:使用new和delete完成动态内存的分配和释放(时间:20分钟) 4.2.1 任务描述 依次按照下面要求完成操作: 定义一个double类型的指针parray,在定义时使用new为其分配一个长度为3的动态数组。 为动态数组赋值:100, 20.5, 34.2。 显示指针变量parray的值。 依次显示指针parray所指向的动态数组的值,以及每个数组元素的地址。 使用delete释放动态数组,并将指针parray的值赋值NULL。 4.2.2 任务目的 掌握使用new为指针变量分配动态数组的方法,以及使用delete释放内存的格式。 掌握访问动态数组元素的方式,包括:赋值和访问(这里为显示)。 掌握动态数组与指针变量的关系:指针变量保存的是动态数组的首地址。 4.2.3 任务要求 按照任务描述,完成功能。 掌握每个任务所涉及的知识点,进行总结。 程序在完成时,应保证有适当的注释信息以及良好的结构。 4.2.4 难点提示 4.3任务3:结合new 和delete使用char指针处理字符串(时间:25分钟) 4.3.1 任务描述 依次按照下面要求完成操作: 定义一个char指针address,用于保存地址信息(字符串),初始化为NULL。 使用new为address分配长度为20的动态字符数组,用于保存字符串。 使用memset将address字符数组清零,分析执行结果。(考虑:不使用new分配空间是否可以使用) 使用strcpy为address赋值字符串Beijing。(考虑:直接使用=赋值是否可以使用) 输出address中字符串的值。 定义另一个字符指针area,在定义时直接使用=赋值字符串Chaoyang。 将area中的字符串,赋值给address。并显示赋值后address中的字符串。 定义字符数组zone,并初始化ABCD。 将zone中的字符串,赋值给address。并显示赋值后address中的字符串。 释放为address所分配的动态数组。 4.3.2 任务目的 结合第七章任务4,总结使用char指针直接处理字符串和使用动态数组处理字符串之间的区别。 4.3.3 任务要求 理解任务描述中对字符串处理的区别,总结分别使用下面三种字符串处理方式的区别以及各自的使用方法:char数组、char指针(分两种:使用new和直接赋值处理)、string对象。 掌握char指针和new结合使用,对字符串的处理。 4.3.4 难点提示 五、作业 5.1 作业1 5.1.1 作业任务 编写一个关于学生有关的程序: 定义一个学生的结构Student,其中每名学生都包括姓名和年龄。姓名请分别使用char数组和char指针实现。 编写关于设置学生姓名函数setName(),参数为Stude

文档评论(0)

82393aa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档