#include<iostream>
using namespace std ;
int main ()
{ const int A = 78 ;const int B = 25 ;int C = 13 ;//---------const在数据类型前-------------------- const int *pi = &A ;//*pi = 56 ;// 错误, 不能修改所指常量。此时*pi指向的是常量A。 pi = &B ;pi = &C ;// *pi = 99 ;// 错误,不能用间址方式修改对象。此时的常量指向的是变量C。 C = 99 ;cout << " *pi = " << *pi << endl ;//总结 const int这样定义的指针不能修改内容,但能修改所指的位置 cout << "----------------------------------------" << endl ;//------------const在*之后 ----------------------int *const D = &C , *p ;//此处的*p没有被常量化 *D = 1000 ; //此时D指针指向的是C变量 cout << "*D = " << *D << endl ;p = new int ;//自己开辟一个新的整数空间 *p = 2000 ;// D = p ; //错误 , 不能对地址进行修改 p = D ;cout <<" *p = " << *p << endl ;//总结 int *const 这样定义的指针能修改内容,但不能能修改所指的位置 cout << "----------------------------------------" << endl ;//----------const在数据类型前和在*之后 ------------const int * const E = &C ;// *E = 1000 ;//错误,间址访问为只读// E = &C ;//错误,不能修改指针常量C = 1000 ;cout << " E = " << *E << endl ;const int * const F = &A ;//F = &C ;// *F = 0 ;cout << "F= " << *F << endl ;//总结 int *const 这样定义的指针不能修改内容,但不能能修改所指的位置 cout << "----------------------------------------" << endl ;
}