常量字符指针是指向常量char的指针还是指向char的常量指针?

时间:2016-07-31 09:38:24

标签: c pointers constants

我正在研究一段代码,当我注意到语法上,不可能区分指向char类型的常量指针和指向常量char类型的指针,至少不是我的知识。无论哪种方式,我试着把它,我最后得到这个:const char * foo;

如果有办法区分两者,请在答案或下面的评论中告诉我。

谢谢。

2 个答案:

答案 0 :(得分:2)

const char * foo;
上面foo

是指向常量char的指针。这意味着您无法更改指针所指向的对象内容。

char * const foo;

以上foo是指向char的常量指针。这意味着您可以更改指针指向的对象内容,但不能将其他对象分配给指针。

This应该对您有用。

答案 1 :(得分:2)

如果您将放在之后适用的类型,则更容易记住const资格适用的位置

char const* a;      // mutable pointer to unmutable char
char*const b;       // unmutable pointer to mutable char
char const*const c; // both unmutable
char* c;            // both mutable