做题笔记(一)const修饰的一阶二阶指针
来源:互联网 发布:淘宝客服售前必备技巧 编辑:程序博客网 时间:2024/06/05 15:16
const 限定一个对象为只读属性。
先从一级指针说起吧:
(1)const char p 限定变量p为只读。这样如p=2这样的赋值操作就是错误的。
(2)const char *p p为一个指向char类型的指针,const只限定p指向的对象为只读。这样,p=&a或 p++等操作都是合法的,但如*p=4这样的操作就错了,因为企图改写这个已经被限定为只读属性的对象。
(3)char *const p 限定此指针为只读,这样p=&a或 p++等操作都是不合法的。而*p=3这样的操作合法,因为并没有限定其最终对象为只读。
(4)const char *const p 两者皆限定为只读,不能改写。
有了以上的对比,再来看二级指针问题:
(1)const char **p p为一个指向指针的指针,const限定其最终对象为只读,显然这最终对象也是为char类型的变量。故像**p=3这样的赋值是错误的,而像*p=? p++这样的操作合法。
(2)const char * const *p 限定最终对象和 p指向的指针为只读。这样 *p=?的操作也是错的。
(3)const char * const * const p 全部限定为只读,都不可以改写。
先从一级指针说起吧:
(1)const char p 限定变量p为只读。这样如p=2这样的赋值操作就是错误的。
(2)const char *p p为一个指向char类型的指针,const只限定p指向的对象为只读。这样,p=&a或 p++等操作都是合法的,但如*p=4这样的操作就错了,因为企图改写这个已经被限定为只读属性的对象。
(3)char *const p 限定此指针为只读,这样p=&a或 p++等操作都是不合法的。而*p=3这样的操作合法,因为并没有限定其最终对象为只读。
(4)const char *const p 两者皆限定为只读,不能改写。
有了以上的对比,再来看二级指针问题:
(1)const char **p p为一个指向指针的指针,const限定其最终对象为只读,显然这最终对象也是为char类型的变量。故像**p=3这样的赋值是错误的,而像*p=? p++这样的操作合法。
(2)const char * const *p 限定最终对象和 p指向的指针为只读。这样 *p=?的操作也是错的。
(3)const char * const * const p 全部限定为只读,都不可以改写。
阅读全文
0 0
- 做题笔记(一)const修饰的一阶二阶指针
- const 修饰指针的问题
- const修饰的多级指针
- const修饰指针的用法
- 常量定义(const)修饰指针变量的…
- 二阶指针和一阶指针实例区分
- C:带有const修饰的指针解读
- 关于const修饰指针的理解
- const 修饰指针的三种写法
- const修饰指针和引用的用法
- const修饰指针的一些细微差别
- const修饰指针和引用的用法
- const在修饰指针时的应用
- C:带有const修饰的指针解读
- const修饰指针和引用的用法
- const修饰指针和引用的用法
- const修饰指针时候的注意事项
- const 修饰指针的4种情况
- Android内存泄漏分析总结
- (二) u-boot 配置、编译过程分析
- 快节奏下的老公抱现象
- 第一章 maven简介
- html响应式布局_媒体查询
- 做题笔记(一)const修饰的一阶二阶指针
- Jupyter Notebook的连接密码 token查询
- 2016年干货小结
- 算法题练习系列之(十八): 反转链表
- 向您的项目添加 C 和 C++ 代码
- chrome、sublime常用插件及windows常用快捷键
- Scala中方法和函数的区别
- C++11 线程池
- Leetcode-21:Merge Two Sorted Lists