### 定义一个整型常量指针和整型指针常量，并说出他们的区别？

答案：

int nData = 10;

const int *pData = &nData; //整型常量指针

int * const pLength = &nData; //整型指针常量

对于整型常量指针(例如 pData)来说，我们不能够使用*pData 的形式设置数据。例如，下面的语句是错误的。

*pData = 100; //错误的语句

但是，我们可以重新为指针 pData 赋值，使其指向一个新的变量。例如：

int nIndex = 1;

pData = &nIndex;

而整型指针常量却正好相反，它允许我们使用* pLength 的形式设置它指向的目标数据，例如：

*pLength = 100;

但是，我们不能够重新为指针 pLength 赋值，使其指向一个新的变量，下面的代码是错误的。

int nIndex = 1;

pLength = &nIndex; //错误的语句

此外，对于整型指针常量来说，我们在定义时必须提供初始化。