我经常搞混 const int *
, const int * const
和 int const *
的区别,怎么区分它们呢?
请先阅读这篇文章:读懂 C 的类型声明(译),接着可以看下下面的例子。
int * p
– p is pointer to intint const * p
– p is pointer to const intint * const p
– p is const pointer to intint const * const p
– p is const pointer to const int其中,下面两个是等同的,只是顺序的不同而已,
当然还有更复杂的,
int ** p
– p is pointer to pointer to intint ** const p
– p is const pointer to pointer to intint * const * p
– p is pointer to const pointer to intint const ** p
– p is pointer to pointer to const intint * const * const p
– p is const pointer to const pointer to int