常量指针和指针常量
原创
©著作权归作者所有:来自51CTO博客作者油菜花11的原创作品,请联系作者获取转载授权,否则将追究法律责任
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;
}