const char * p和char const * p之间的区别

可能重复:
const int *,const int * const,int const *之间的区别是什么?

Are there any Difference between const char* p and char const* p 

有些单词的顺序不一样。

(在const相对于恒星移动之前没有语义差异)

const char* p是一个指向const char的指针。

char const* p是一个指向char const的指针。

由于const charchar const是相同的,所以它是相同的。

但是,请考虑:

char * const p是指向(非const)char的const指针。 即你可以改变实际的char,但不是指向它的指针。

没有区别,因为’*’的位置没有移动。

1)const char * p – 指向常量字符的指针(’p’不可修改,但指针是)
2)char const * p – 也指向常量Char的指针

但是如果你有类似的东西:
char * const p – 这声明’p’是一个指向char的常量指针。 (Char p是可修改的,但指针不是)

这两者之间没有function差异。 ‘更精确’是char const * p因为语义是从右到左。

没有语义差异,但这是编码风格和可读性的问题。 对于复杂的表达式,从右到左阅读工作正常:

char const ** const

const pointer to a pointer to a constant charconst pointer to a pointer to a constant char

因此char const *在这方面更加一致。 然而,许多人更喜欢使用const char*来实现其可读性 – 它立即清楚它意味着什么。