2章从C快速过渡到C.pptVIP

  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文档。上传文档
查看更多
2章从C快速过渡到C

第二章 从C快速过渡到C++;§2.1 数据类型 一、基本数据类型 ;二、复杂数据类型;§2.2 C++的常量和变量;一、常量(续)——符号常量;一、常量(续) ——可以定义为常量的变量;4.指针本身和指针所指的目标变量 ;(3)指针和所指对象可同时定义为常量,成为指向常量的常量指针,这时两者都不能再改变。其格式为: const 类型 *const 指针名=地址表达式; (4) ★★常量指针是C++中一个非常有用的概念,除了用“*const”定义的常量指针外,还有变量的地址、数组名、结构数组名、对象数组名、函数名等也是常量指针。因此,const与指针配合使用,可以定义指向常量的指针、常量指针和指向常量的常量指针,列于表2.1中。 ;二、变量;C++增加三点:;(3)作用域运算符::;§2.3 C++的指针;§2.4 引用变量(reference);§2.4 引用(续1);§2.4 引用(续2);§2.4 引用(续3);§2.4 引用(续4);ANSI C++标准对引用变量的限制: ;§2.5 C++的运算符;一、表达式中的类型转换(续);;三、 new运算符的用法 ;例2.7 运算符new与delete的用法;(3)new和delete优于malloc()和free(),运算符new自动计算类型的大小而不需使用sizeof 运算符,而且返回的指针能正确指向该类型,而不须作强制类型转换处理。更重要的是new和delete可用于用户定义的class类型,而malloc()和free()不能用来创建class类型的动态对象。 (4)用new也可动态地创建一维数组并为它的元素在堆中分配存储空间,new的返回值是数组第0号元素的首地址,即该数组的首地址,其格式为: 类型 *指针变量名=new类型 [元素个数]; 例如:int *pa=new int[10]; //创建了具有10个元素的int型动态数组pa ; 对单个变量也可采取这种形式,元素个数为1。例如: float *px=new float[1]; 用这种格式创建对象时,只是给对象分配了内存空间,但并未对它赋值。因此在使用前必须用赋值操作对其赋值。如:*px=12.6; (5)采用地址赋值,把两个指针指向同一内存位置,将产生“别名”问题,用new创建对象时最容易产生。 (6)new创建的对象,其生存期是整个程序运行期间,直到显式地用delete运算符撤消它。;例2.8 自动变量的“别名”问题。;例2.9 动态对象或动态变量的“别名”问题 ;运算符delete的用法 ;§2.6 C++的函数;1.函数的传值调用和传址调用;2.函数的引用调用(C++特有);2.函数的引用调用(续);2.函数的引用调用(续);3.引用作为函数的返回值 ;指针函数elem2()可作为“左值表达式” ;把返回引用的函数作为“左值表达式” ;(1)返回引用的函数,其定义格式为: 存储类 类型 函数名(形参表) { …… return 表达式; } 与一般函数的定义格式类同,只是其中的“类型”指明函数的返回值为引用,在函数体内必须与之对应有一个“return 表达式;”语句。 (2)返回引用的函数,只能用全局变量或静态变量作为返回值,而不能用该函数的自动变量,因为自动变量在该函数体外自动消失。也就是说,return语句的表达式只能写全局变量或静态变量名,而不能写自动变量名。;注意: 函数参数求值顺序与参数默认值补足顺序不同 参数求值顺序:由编译器决定求值方向; 参数默认值补足顺序:自左向右;二、设置函数参数的默认值(续);二、设置函数参数的默认值(续);普通函数;2.内联函数的定义方法;3.使用内联函数的注意事项;include iostream.h #define f(x) x*x ?? void main() { int x(2); coutf(x)endl; coutf(x+1)endl; } 程序运行结果: 4 5 原因: f(x) 替换为2*2 f(x+1)替换为2+1*2+1;四、函数重载;1.参数类型不同的重载函数;1.参数类型不同的重载函数(续);2.参数个数不同的重载函数;3.带有缺省参数时的函数重载;4.重载函数的使用说明 ;5.重载函数的匹配规则 ;小 结;使用断点

文档评论(0)

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

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

1亿VIP精品文档

相关文档