第4篇 C++语言的复合数据类型.ppt

  1. 1、本文档共32页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第4章 C++语言的复合数据类型 本章要点: ? 指针的定义和使用 ? 引用的定义和使用 ? 数组的定义和使用 ? vector容器的定义和使用 ? 字符串的定义和使用 ? 枚举的定义和使用 4.1 循序渐进学理论 4.1.1 指针的定义和使用 4.1.4 vector容器的定义和使用 4.1.5 字符串的定义和使用 4.1.6 枚举的定义和使用 4.2 典型实例练能力 4.2.1 典型实例一: 根据货币总值计算最少的人民币张数 【实例题目】 简便起见,假设有下列7种面值的人民币:100元,50元,20元,10元,5元,2元和1元。任意输入一个整数m,计算并显示如何使用最少的人民币纸张,使货币总值为m。 例如,输入数据为193,则最少需要6张人民币纸张:196 = 1*100 + 1*50 + 2*20 + 1*5 + 1*1 4.2.2 典型实例二:计算学生的平均成绩 【实例题目】 编写一个程序实现以下功能:某班有M名同学,本学期开了N门课,期末考试后,分别统计每个学生的平均分。简便起见,假设M=3,N=4,成绩为整数。 要求:采用指针读写数组中的元素。 输入:学生总数M和课程数目N,对于每个学生,输入学号和各课的成绩。 4.2.3 典型实例三:智者生存 【实例题目】 17世纪法国数学家加斯帕在《数学的游戏问题》一书中提出了有趣的约瑟问题:“15名基督教徒和15名异教徒同船航行,途中风浪大作,危机万分,只有将船上一半的人投入海中,其余的人才能幸免。于是,这30个人围成一圈,由第一个人起报数,每数至第9人便把他投入大海,然后从1开始重新报数,第9人又被投入大海,依次类推,直至船上剩下15人为止。问题是如何排法才能使被投入海中的全是异教徒?” 要求:采用vector容器解决这个问题。 4.3 上机练习重应用 4.3.1 上机练习一:合并两个有序数组 【练习题目】 假设存在以下两个数组A和B,各个数组中的元素已经按照升序排列。编写一个程序,合并数组A和B,形成一个新数组C,并使数组C中的元素仍按升序排列。 int A[10]={-5,-2,0,4,16,23,55,80}; int B[10]={-13,-4,5,30,55,68,100,120}; * * 1. 指针的概念 指针变量是一种特殊的变量,用于保存某个变量、对象或者函数的地址值。可以通过指针对那些存放在存储器中的数据进行读写操作。 2. 指针的定义 指针的定义格式如下(方括号“[ ]”中的内容是可选的): [存储类型] 类型 *指针名 [= 初值] 例如: int *ip1, *ip2; // 定义指向int型对象的指针ip1和ip2 每个指针都必须要指定相关的数据类型,这对指针来说是非常重要的,因为在指针变量中存放的内容是地址,而不是具体的数据,编译器只能根据指针的数据类型来决定如何操作该指针指向的数据。 3. 指向常量的指针和常量指针的定义 指向常量的指针本身并不是常量,而是指向一个常量对象,通常用作函数的形参,确保传递给函数的对象在函数体内不会被改变。 例如: const double *dp; // dp是指向double型常量的指针 也可以定义一个常量指针,其自身是常量,不能被改变,但是可以通过它指向其他的常量或者变量。常量指针的定义看上去有些别扭,例如: const double *const dp1; double *const dp2; 4. 指针变量的赋值 指针在没有被赋值前是不能被使用的,给指针变量赋值有三种形式:取地址符“”赋值、指针间赋值和数组名或者函数名赋值。C++语言规定“数组名”和“函数名”代表数组或函数的地址。下面是一些为指针赋值的示例: int ival = 2938; int *ip1 = 0; int *ip2 = ival; ip1 = ip2; // ① 注意:指针不能被赋予不是地址的值,也不能被赋予与该指针类型不同的其他类型的对象的地址,这些都会导致编译错误。有

您可能关注的文档

文档评论(0)

kehan123 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档