0
A
回答
1
Type const* p
是一个指向常量对象的指针,其类型为Type
。从左到右读,指针指向星号之前的所有东西。同样,Type const* const q
是一个常量指针,指向类型为Type
的常量对象。
另外,*p
不能通过p进行修改。定义为p
以便指向*p
并承诺不对其进行修改。然而,*p
,p的指针,可以通过指向它的任何其他指针进行修改。
例如,我们可以有
Type t;
Type const* pc = &t;
Type *pnc = &t;
pc
承诺不改变T,pnc
没有。假设类类型带有const inspect() const
方法和非const mutate()
方法。然后,我们可以有
pc->inspect();
pnc->inspect();
pnc->mutate();
,而这一次将上升编译器的错误:
pc->mutate();
Type const* const q
是一个指向一个const对象和*q
不能至Q修改,就像页。更重要的是,指针q
不能修改:它不能再次分配指针。
此外,虽然这可能听起来很奇怪,你被允许在代码中,以改变指针指向Type const* p
型Type
的对象 - 但不是通过p
。
0
我推荐阅读这篇文章,它解释了如何使用const非常清晰,包括常量指针,指向常量的指针和指向常量的常量指针。希望你喜欢它! http://duramecho.com/ComputerInformation/WhyHowCppConst.html
0
是不能修改的,但是,它只能保证该变量的指针指向将是恒定的,它是不一样的东西Type const* const q
这也保证了指针是恒定
相关问题
- 1. 关于“int const * p”和“const int * p”
- 2. GetField const类型的基类
- 3. 为什么{typedef int * PTR; const PTR p = #}不等于“const int * p = num”而是等于“int * const p = num”?
- 4. 错误:</p> <p>错误:在const的返回类型
- 5. 在C++类型转换从短阵到短CONST * const的*
- 6. 括号为const类型GCC
- 7. 类const const C中的令牌无效#
- 8. C++中char * p和const char * p有什么区别?
- 9. 在C++中Const类型的困境
- 10. 德尔福PChar类型C++为const char *
- 11. const类型的C++模板泛化
- 12. 用“const”关键字C类型铸造
- 13. Const数据类型不能被分配到一个非const数据类型
- 14. C++ - 使用操作符重载无法比较const和非const模板类型
- 15. const成员函数VS const的返回类型
- 16. const类型'NSString * const __strong'的对象的默认初始化?
- 17. 从trait获得const或非const引用类型
- 18. 返回引用一个const指针为const类型
- 19. C++ Uint8数据类型转换为const char *数据类型
- 20. 静态/ const型* const的区别
- 21. C++为const char *为const char * const的
- 22. const char ** p指针和整数之间的比较if(** p == NULL)
- 23. 返回const或non-const在主要类型中有什么区别C++
- 24. Pascal:Const Const Const
- 25. 对于Class :: Type类型,我可以从const类派生const Class :: Type吗?
- 26. 使用const void *((struct str_name *)p) - > str_dataitem;
- 27. 为const和普通型
- 28. C++ const成员函数返回一个const指针..但是返回的指针是什么类型的const?
- 29. 为什么在const方法为public并且非const类型被保护时,C++不会强制转换为const?
- 30. 在模板中获取非const类型
相关,不同样的问题。我想知道如果p是一个'Type const * p',我是否可以修改p的pointee。韩国社交协会。 – octoback 2013-04-21 11:08:50