const int a; int const a; const int *a; int * const a; int const * a const;

const int a; int const a;      这两个写法是等同的,表示a是一个int常量。
const int *a;       表示a是一个指针,可以任意指向int常量或者int变量,它总是把它所指向的目标当作一个int常量。也可以写成int const* a;含义相同。
int * const a;      表示a是一个指针常量,初始化的时候必须固定指向一个int变量,之后就不能再指向别的地方了。
int const * a const;     这个写法没有,倒是可以写成int const * const a;表示a是一个指针常量,初始化的时候必须固定指向一个int常量或者int变量,之后就不能再指向别的地方了,它总是把它所指向的目标当作一个int常量。也可以写成const int* const a;含义相同。

原文地址:https://www.cnblogs.com/yannuonuo/p/2997450.html