const出现在星号左边,被指物是常量

const出现在星号右边,指针自身是常量

/************************************************************************/
/*
常量指针和指针常量的区别

指针常量,pointer to const,指向一个固定的地址,地址不能改变,
可以改变地址里所存储的值
常量指针,constant pointer,地址里的值固定

*/
/************************************************************************/
#include<iostream>
#include <windows.h>
#include <string>
using namespace std;
int main()
{

int iTest1 = 1;
int iTest2 = 2;

//指针常量,指向位置不能变(指针本身是常量),但是可以改变指向位置的内容
//但是指针常量必须要赋初值
int* const piTest = &iTest1;

//piTest = &iTest2;// 错误做法:修改指向的位置

*piTest = 9; //正确做法:改变指向位置的值,(所指向地址可以变化)
cout << "*piTest = "<<*piTest << endl;
cout << "iTest1 = " << iTest1 << endl;

// 常量指针
int a = 30;
int b = 20;

const int* pszMyTest = &a;

//*pszMyTest = 2;// 错误,常量指针,把指向的变量修饰为常量

pszMyTest = &b; //正确,常量指针,可以改变指向的位置


system("pause");

return 0;
}