第4章常量与引用讲述.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
计算机科学与工程学院 西安理工大学 第四章 常量与引用 学习目标 了解define与const的区别 掌握const的不同应用 掌握引用方法 掌握引用拷贝构造函数的使用方法 const for(int i=0; i=100;i++) { …… } #define MAX 100 #define fun(a) a*5 …… int s=fun(3+5); fun(a)=3+5*5 const使用方法 格式: 注意: 尽量把const定义放进头文件里,由此通过包含头文件,把const定义放在一个需要放置的地方。 当定义一个常量(const)时,必须初始化,即赋初值给它。 const 类型名 对象名; 例如: const int MAX=100; int iDataList[MAX]; const使用方法 程序设计中,如果不想改变某个数值,就应该声明它为“常量” 。常量的使用一是消除不安全因素,二是消除存储和读操作,使代码的执行效率更高。 [例4-1] 常数组与常对象。 const int DATALIST[]={5,8,11,14}; //合法使用,定义一个常量数组 struct MyStruct{int i; int j;}; const MyStruct sList[]={{1,2},{3,4}}; //正确,定义一个结构体常量数组 char cList[DATALIST[1]]; //错误 float fList[sList[0].i]; //错误 const与指针 const与指针的结合使用,有两种情况: 用const修饰指针,即修饰存储在指针里的地址; 修饰指针指向的对象。为防止混淆使用,采用“最靠近”原则。 指向常量的指针 定义格式 例如: const int *p; int const *p; const 类型名* 指针变量名; const与指针 常指针 定义格式 例如: int i=4; int *const q=i; i=5; *q=6; 可以使用一个常指针指向一个变量,也可以把非const对象变为const对象。例如: int i=4; int *const p=i; //可以用const指针指向一个非const对象 const int *const q=i; //可以把非const对象地址赋值给const对象指针 类型名* const 指针名; const与指针 可以用指向字符的指针来指向字符串,例如: char *p= “hello!”; const char *q=hello!; //正确,非const指针,const数据 const char *const p=“hello!”; //正确,const指针,const数据 可以把非const数据对象地址赋给const指针,但是不能把const对象的地址赋给指向非const对象的指针 int i=5; const int j=3; int *p=i; //int *q=j; //错误,把const对象的地址赋给指向非const对象的指针 int *s=(int*)j; //强制转换,合法,但是不建议这样使用 const与函数 函数与const结合应用有两种方式:参数为const类型;返回值为const类型。 const类型参数 定义格式 例如 void f(const int i){ i++; //错误 } void f(const int* p){ (*p)++; //错误 } 返回值类型 函数名称(const 类型 参数名, ……) const应用 const类型返回值 可以用const修饰符修饰函数的返回值,即函数返回一个常量值,此常量值既可以赋给常量(对常量初始化),也可以赋给变量。 [例4-2] 返回值为常量的函数 [例4-3] 常对象的使用 const在传递地址中的应用 在函数的实参与形参结合时的传递地址过程中,对于在被调用的函数中不需要修改的指针或对象,用const修饰是合适的。 [例4-4] 常指针使用举例 const与类 在类里建立一个const成员时不能赋初值,只能在构造函数里对其赋初值,而且要放在构造函数特殊的地方。 class conClass{ const int NUM; public: conClass(); }; conClass::conClass():NUM(100){} 错误示例: class conClass{ const int NUM=100; //错误 int iData[NUM]; //错误 public:

文档评论(0)

70后老哥 + 关注
实名认证
内容提供者

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

1亿VIP精品文档

相关文档