int32_t iInputA(10), iInputB(100);
const int32_t* pTest = &iInputA; //正确
std::cout << *pTest << std::endl;
pTest = &iInputB; //正确
std::cout << *pTest << std::endl;
*pTest = iInputB;//错误
int32_t iInputC(10), iInputD(100);
int32_t const * pTest2 = &iInputC; //正确
std::cout << *pTest2 << std::endl;
pTest2 = &iInputD; //正确
std::cout << *pTest2 << std::endl;
pTest2 = iInputD; //错误
int32_t iInputE(100), iInputF(1000);
int32_t* const pTest3 = &iInputE;//正确
std::cout << *pTest3 << std::endl;
pTest3 = &iInputF; //错误
std::cout << *pTest3 << std::endl;
*pTest3 = iInputF;//正确
总结:
1)const int* 和int const * 等价,都是底层const(表示指针所指的对象是一个常量)
2)int * const 是一个顶层const(表示指针是一个常量)