首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

typedf和const用法请问。

2012-04-05 
typedf和const用法请教。。。。。。。。typedf string *pstringconst pstring cstr为什么上面的代码等价于string

typedf和const用法请教。。。。。。。。
typedf string *pstring;
const pstring cstr;
为什么上面的代码等价于
string *const cstr;
为什么不是等价于
const string *cstr;

[解决办法]
我觉得可以这样理解 pstring 实际是 string 指针 那么const 修饰pstring 就是修饰的string 指针~~
[解决办法]
C和C++的语法就是这样的。不用typdef的话,const string* p,跟string const* p是一样的,*表示后面的东西是个指针,指向的是const string或string const,意思都一样。
除非你写string *const p,那就不一样了,表示后面的p是个const的指针,指向的是string。
要让两者都成为const,可以写:const string* const p。
另外别忘了typedef跟宏定义不同,它不仅仅是简单的字符串替换。
[解决办法]
貌似在C++primer中有讲到原因在于将 typedef 当做文本扩展了。声明 const pstring 时,const 修饰的是 pstring 的类型,这是一个指针。因此,该声明语句应该是把 cstr 定义为指向 string 类型对象的 const 指针

热点排行