c++ primer第五版(中文)习题答案 第二章第四节-const限定符
来源:互联网 发布:长歌门捏脸数据 编辑:程序博客网 时间:2024/04/30 18:35
本博客知识记录自己学习中的笔记或者记录,如果有错误欢迎大家纠正。
转载声明出处
默认状态下,const对象仅在文件内有效 ,在其他文件中使用 必须在变量前面加extern才能访问。
const 的引用 :可以把引用绑定到const对象上,就像绑定到其他对象上一样 我们称之为对常量的引用 ,对常量的引用不能被其他用作修改它所绑定的对象,普通引用不能引用常量对象,常量引用 可以引用普通和常量对象。
指针const:
指向常量的指针,不能用于改变其所指对象的值,要想存放常量对象的地址,只能使用指向常量的指针。 (const 在*的左边)
const指针: 指针本身地址不能被改变,(const 在* 的右边)
练习 2.26 下面那些句子是合法的,如果有不合法的句子,请说明为什么
a . const int buf;//不合法 没有初始化const
b. int cnt =0;
c const int sz = cnt;
d ++cnt;++sz; //错误 sz是const 不能对其值进行修改
练习 2.27 下面的那些初始化是合法的,请说明原因
a. int i = -1,&r =0; //错误 引用是对象b. int *const p2 =&i2; //正确c. const int i = -1,&r =0;//正确 r是常引用 0是常量d. const int *const p3 = &i2; // 正确e. const int *p1 =&i2; //正确f. const int &const r2;//错误 引用不能const g. const int i2 = i;&r=i;//正确
练习 2.28 说明下面的这些定义是什么意思,挑出其中不合法的。
a. int i,*const cp;//错误 没有初始化 const指针cpb. int *p1,*const p2; //错误 没有初始化 const指针p2c. const int ic,&r =ic;//错误 ic没有初始化d. const int * const p3;//错误 const指针p3没有初始化e. const int *p; //正确 指针本身是常量 ,不是指向常量 可以不初始化
练习 2.29 假设已有上一个练习中定义的那些变量则下面的那些语句是合法的?请说明原因。
a. i =ic; //正确b. p1 =p3; //p3是一个常指针c. p1 =⁣ //错误,常量 使用常量指针d. p3 =⁣ //错误 ,p3本身也是conste. p2 = p1; //错误 p2是常指针不能改变指向的地址 f. ic =*p3; //错误 ic是const 不能修改其值
练习2.30 对于下面的这些语句,请说明对象被声明成了顶层const还是底层const.
a. const int v2 =0; //顶层b. int v1 = v2; c. int *p1=&v1,&r1=v1; d. const int *p2 =&v2,*const p3 =&i,&r2 =v2; //p2 底层,p3左边的底层 右边是顶层,r2是底层
练习 2.31 假设已有上一个练习中所做的那些声明,则下面的那些语句是合法的,请说明顶层const和底层const在每个例子中有何体现。
r1 =v2; //正确
p1=p2; //错误 p2是底层const ,p1不是
p2=p1;//正确
p1=p3;//错误 p3是底层const ,p1不是
p2=p3;//正确
练习 2.32 下面代码是否合法,如果非法,请假设将其修改正确
int null = 0 ,*p =null;
不合法,修改
int null = 0 ,*p =&null; //p指向变量null
int null = 0 ,*p =nullptr;//p为空指针 nullptr
- c++ primer第五版(中文)习题答案 第二章第四节-const限定符
- c++ primer第五版(中文)习题答案 第十章第四节第二小节-iostream迭代器
- c++ primer第五版(中文)习题答案 第二章第二节-变量
- c++ primer第五版(中文)习题答案 第十章第四节第一小节-插入迭代器
- c++ primer第五版(中文)习题答案 第十章第四节第三小节-反向迭代器
- c++ primer第五版(中文)习题答案 第十章第二节第一小节-只读算法
- c++ primer第五版(中文)习题答案 第二章第六节-自定义数据结构
- c++ primer第五版(中文)习题答案 第三章第二节-标准库类型string
- C++Primer 中文版 第五版 第四章课后习题答案
- C++Primer 中文版 第五版 第二章课后习题答案
- c++ primer第五版(中文)习题答案 第十章第三节第四小节-参数绑定
- C++Primer中文(第五版)习题答案(英文)
- c++ primer第五版(中文)习题答案 第十章第二节第二小节-写容器元素的算法
- c++ primer第五版(中文)习题答案 第十章第三节第二小节-lambda表达式
- c++ primer第五版(中文)习题答案 第二章第一节-基本内置类型
- c++ primer第五版(中文)习题答案 第二章第三节-复合类型
- c++ primer第五版(中文)习题答案 第二章第五节-处理类型
- C++Primer第五版 第四章习题答案(1~10)
- 浅谈Java中的System.out.println()
- 为什么在Java中不使用finalize()方法
- 在EA中将代码导入模型的时候,查看源码出现中文乱码的解决方案
- 《剑指offer》——变态跳台阶
- shell join命令详解(转)
- c++ primer第五版(中文)习题答案 第二章第四节-const限定符
- ajax实现简单的多人聊天
- Mangos源码分析(14):Mangos预编译头文件及模块划分随想
- lua语言中与时间相关的函数总结
- 黑马程序员——C语言指针
- linux常用命令ls
- 密码加盐-Salting password
- 闲聊
- JavaScript高级程序设计之DOM之节点层次之Text类型第10.1.4讲