求教!!!!!!!!!!!!

jikeyuan11 2012-01-20 11:38:05
typedef string* pstring;
const pstring cstr;

请问 cstr是什么类型啊 ??

答案为什么是 string* const这个怎么理解啊

请大侠帮忙啊

...全文
98 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
无事所所 2012-01-20
  • 打赏
  • 举报
回复
是的
const 和 * 的有效组合有3种:
因为const只是修饰词,因此不能改变type * 两者的顺序

const type *
type const *
type * const

其中前两种意思是一样的,表示指针指向的是常量,即常指针
第三种表示指针本身不能改变,即不能重新定位指针,即指针常量

至于typedef的作用楼上已言尽


闲的每日C 2012-01-20
  • 打赏
  • 举报
回复
写法上区别是const在*之前还是之后,它所代表的意义,死记就行。用多了自然就熟悉了。
闲的每日C 2012-01-20
  • 打赏
  • 举报
回复
string const * 和 const string* 是一样的。
闲的每日C 2012-01-20
  • 打赏
  • 举报
回复
先有typedef string* pstring;
后有const pstring cstr;
所以是string* const。表示指针是const,不可以转移指针指向。

如果是typedef const string cstring;
后有cstring* cstr;
就是string const *。表示指向const string的指针,不可以改变string的值。
Eleven 2012-01-20
  • 打赏
  • 举报
回复
意思是指针是const
typedef并不是简单的展开,当做一个新的类型使用了,pstring是指针,const pstring cstr意思是cstr是常量,而不是*cstr是常量

所有就有:
string* const cstr;
赵4老师 2012-01-20
  • 打赏
  • 举报
回复
不要纠结各种常量了,这个世界上唯一不变的就是变化。用API WriteProcessMemory还能修改正运行的其它进程的内存里面的所谓常量呢!

65,210

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧