C++中typedef的用法是什么?
typedefchar*cstring;externconstcstring;//已知上面的定义,cstr的类型是下面哪个?请说下原因,谢谢!!constchar*cst...
typedef char *cstring;
extern const cstring;
//已知上面的定义,cstr的类型是下面哪个?请说下原因,谢谢!!
const char *cstr;
char *const cstr;
哦,不好意思,少打字了,上面第二行应该是:
extern const cstring cstr; 展开
extern const cstring;
//已知上面的定义,cstr的类型是下面哪个?请说下原因,谢谢!!
const char *cstr;
char *const cstr;
哦,不好意思,少打字了,上面第二行应该是:
extern const cstring cstr; 展开
3个回答
展开全部
const char *cstr;意思是,cstr是一个指针,这个指针指向一个字符常量。指针指向的内容不可变。
char *const cstr;意思是,cstr是一个常量指针,它指向一个字符。指针本身不可变,指向的内容可变。
typedef char *cstring;定义了一个字符指针类型cstring。
extern const cstring;
这里需要考虑了,cstring到底是一个常量指针呢?还是一个指向常量的指针?因为cstring代表的是一个指针类型,const修饰的是这个指针本身,所以,这是一个常量指针。它等价于char *const cstr;
char *const cstr;意思是,cstr是一个常量指针,它指向一个字符。指针本身不可变,指向的内容可变。
typedef char *cstring;定义了一个字符指针类型cstring。
extern const cstring;
这里需要考虑了,cstring到底是一个常量指针呢?还是一个指向常量的指针?因为cstring代表的是一个指针类型,const修饰的是这个指针本身,所以,这是一个常量指针。它等价于char *const cstr;
展开全部
cstr类型为char *const,而不是const char *,原因在于const给予了整个指针本身以常量性,也就是形成了常量指针char* const。
简单来说,记住当const和typedef一起出现时,typedef不会是简单的字符串替换就行。 参考资料有typedef的详细用法,希望对你有用!
简单来说,记住当const和typedef一起出现时,typedef不会是简单的字符串替换就行。 参考资料有typedef的详细用法,希望对你有用!
参考资料: http://faq.csdn.net/read/217385.html
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
typedef是重命名的意思,就是一个东西起两个名字。比如:
typedef
height
int;
height
a;
就是
int
a;的意思,之所以用height,是因为height这时还可以表示高度的意思
typedef
height
int;
height
a;
就是
int
a;的意思,之所以用height,是因为height这时还可以表示高度的意思
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询