1. 首页
  2. 文档大全

第4章常量与引用

上传者:9****8 2022-07-19 17:20:10上传 PPT文件 432.50KB
第4章常量与引用_第1页 第4章常量与引用_第2页 第4章常量与引用_第3页

《第4章常量与引用》由会员分享,可在线阅读,更多相关《第4章常量与引用(22页珍藏版)》请在文档大全上搜索。

1、第四章 常量与引用 学习目标学习目标 了解了解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*5const使用方法使用方法 格式:格式: 注意:注意:l 尽量把尽量把const定义放进头文件里,由此通过包含头文件,把定义放进头文件里,由此通过包含头文件,把const定义放在一个需要放置的地方。定义放

2、在一个需要放置的地方。l 当定义一个常量当定义一个常量(const)时,必须初始化,即赋初值给它。时,必须初始化,即赋初值给它。const 类型名类型名 对象名对象名;例如:例如: const int MAX=100; int iDataListMAX; const使用方法使用方法程序设计中,如果不想改变某个数值,就应该声明它为程序设计中,如果不想改变某个数值,就应该声明它为“常量常量” 。常量的使用一是消除不安全因素,二是消除存储和读操作,使代码的常量的使用一是消除不安全因素,二是消除存储和读操作,使代码的执行效率更高。执行效率更高。例例4-1 常数组与常对象。常数组与常对象。l const

3、 int DATALIST=5,8,11,14;/合法使用,定义一个常量数组合法使用,定义一个常量数组l struct MyStructint i; int j;l const MyStruct sList=1,2,3,4;/正确,定义一个结构体正确,定义一个结构体常量数组常量数组 l char cListDATALIST1;/错误错误l float fListsList0.i;/错误错误const与指针与指针 const与指针的结合使用,有两种情况:与指针的结合使用,有两种情况:l 用用const修饰指针,即修饰存储在指针里的地址;修饰指针,即修饰存储在指针里的地址;l 修饰指针指向的对象。

4、为防止混淆使用,采用修饰指针指向的对象。为防止混淆使用,采用“最靠近最靠近”原则。原则。指向常量的指针指向常量的指针 l 定义格式定义格式 l 例如:例如:l const int *p; l int const *p; const 类型名类型名* 指针变量名指针变量名;const与指针与指针常指针常指针 l 定义格式定义格式 l 例如:例如:l int i=4;l int *const q=&i;l i=5;l *q=6;l 可以使用一个常指针指向一个变量,也可以把非可以使用一个常指针指向一个变量,也可以把非const对象变为对象变为const对对象。例如:象。例如:l int i=4

5、;l int *const p=&i; /可以用可以用const指针指向一个非指针指向一个非const对象对象l const int *const q=&i;/可以把非可以把非const对象地址赋值给对象地址赋值给const对象指针对象指针 类型名类型名* const 指针名指针名;const与指针与指针l 可以用指向字符的指针来指向字符串,例如:可以用指向字符的指针来指向字符串,例如:l char *p= “hello!”; l const char *q=hello!;/正确,非正确,非const指针,指针,const数据数据l const char *const p=“h

6、ello!”;/正确,正确,const指针,指针,const数据数据l 可以把非可以把非const数据对象地址赋给数据对象地址赋给const指针,但是不能把指针,但是不能把const对象的对象的地址赋给指向非地址赋给指向非const对象的指针对象的指针 l int i=5;l const int j=3;l int *p=&i;l /int *q=&j;/错误,把错误,把const对象的地址赋给指向非对象的地址赋给指向非const对象的指针对象的指针l int *s=(int*)&j;/强制转换,合法,但是不建议这样使用强制转换,合法,但是不建议这样使用 const与函

7、数与函数 函数与函数与const结合应用有两种方式:参数为结合应用有两种方式:参数为const类型;类型;返回值为返回值为const类型。类型。const类型参数类型参数 l 定义格式定义格式l 例如例如 void f(const int i) i+;/错误错误void f(const int* p) (*p)+;/错误错误 返回值类型返回值类型 函数名称函数名称(const 类型类型 参数名参数名, )const应用应用 const类型返回值类型返回值l 可以用可以用const修饰符修饰函数的返回值,即函数返回一个常量值,此常量修饰符修饰函数的返回值,即函数返回一个常量值,此常量值既可以赋给

8、常量值既可以赋给常量(对常量初始化对常量初始化),也可以赋给变量。,也可以赋给变量。 l 例例4-2 返回值为常量的函数返回值为常量的函数 l 例例4-3 常对象的使用常对象的使用 const在传递地址中的应用在传递地址中的应用l 在函数的实参与形参结合时的传递地址过程中,对于在被调用的函数中在函数的实参与形参结合时的传递地址过程中,对于在被调用的函数中不需要修改的指针或对象,用不需要修改的指针或对象,用const修饰是合适的。修饰是合适的。l 例例4-4 常指针使用举例常指针使用举例const与类与类在类里建立一个在类里建立一个const成员时不能赋初值,只能在构造函成员时不能赋初值,只能在


文档来源:https://www.renrendoc.com/paper/212711759.html

文档标签:

下载地址