const int = int const?
例如,是
int const x = 3; 有效的代码?
如果是这样,是否意味着一样
 const int x = 3; 
?
它们都是有效的代码,它们都是等效的。 对于指针types,虽然它们都是有效的代码,但不等同。
声明2个常量的整数:
 int const x1 = 3; const int x2 = 3; 
声明一个指针,其数据不能通过指针进行更改:
 const int *p = &someInt; 
声明一个不能改变的指针指向别的东西:
 int * const p = &someInt; 
 是的,他们是一样的。  C ++中的规则本质上是const适用于左边的types。 但是,如果将它放在声明的最左边,则会有一个例外,它适用于该types的第一部分。 
 例如在int const *你有一个指向一个常量的指针。 在int * const你有一个指向一个整数的常量指针。 你可以推断这个指针指向,英文可能会混淆,但原则是相同的。 
关于另一方面的优点的另一个讨论,请看我关于这个问题的问题。 如果你很好奇为什么大多数人使用这个例外, 这个 Stroustrup的FAQ条目可能会有所帮助。
是的,那完全一样。 但是,指针有所不同。 我的意思是:
 int a; // these two are the same: pointed value mustn't be changed // ie pointer to const value const int * p1 = &a; int const * p2 = &a; // something else -- pointed value may be modified, but pointer cannot point // anywhere else ie const pointer to value int * const p3 = &a; // ...and combination of the two above // ie const pointer to const value const int * const p4 = &a; 
从“有效的C ++”项目21
 char *p = "data"; //non-const pointer, non-const data const char *p = "data"; //non-const pointer, const data char * const p = "data"; //const pointer, non-const data const char * const p = "data"; //const pointer, const data 
这在意义和有效性上是一样的。
据我所知,const只要涉及指针就会变得复杂。
 int const * x; int * const x; 
是不同的。
 int const * x; const int * x; 
是一样的。