可能重复:
what is the difference between const int*, const int * const, int const *
Are there any Difference between const char* p and char const* p
答案 0 :(得分:17)
const char* p
是指向const char
的指针。
char const* p
是指向char const
的指针。
由于const char
和char const
相同,所以它是相同的。
但是,请考虑:
char * const p
是指向(非常量)char的const
指针。即你可以改变实际的char,但不能改变指向它的指针。
答案 1 :(得分:10)
有些单词的顺序不一样。
(在const相对于恒星移动之前没有语义差异)
答案 2 :(得分:4)
没有区别,因为'*'的位置没有移动。
1)const char * p - 指向常量字符的指针('p'不可修改,但指针是) 2)char const * p - 也指向常量Char的指针
但是如果你有类似的话:
char * const p - 这声明'p'是一个指向char的常量指针。 (Char p是可修改的,但指针不是)
答案 3 :(得分:2)
这两者之间没有功能差异。 “更精确”的一个是char const * p
,因为语义是从右到左。
答案 4 :(得分:2)
没有语义差异,但这是编码风格和可读性的问题。对于复杂的表达式,从右到左阅读工作正常:
char const ** const
是const pointer to a pointer to a constant char
。
所以char const *
在这方面更加一致。然而,许多人更喜欢const char*
的可读性 - 它立即清楚它意味着什么。