#include <stdio.h>
int main () {
int a1=10,a3=11;
double a2=20.1;
//-----可写3种,各不相同----//
//写法1,指针指向类型的前面
const int *p1=&a1;//只限定了int类型的指针,无限定其地址,可改指向的地址,但不能改指向地址里面的值
p1=&a3;//可改变指针指向的地址
//p1=&a2;//指针指向的类型不对,这里只能指向int类型的地址
//*p1=1;//但不能改指向地址里面的值
//写法2,指针符号的后面&指针名称的前面
int *const p2=&a1;//只限定了地址,不能改指针指向的地址,除初始化外,不能改其地址,可改其指向地址的值
//p2=&a3;//除初始化外,不能改其地址
//p2=&a2;//指针指向的类型不对,这里只能指向int类型的地址
*p2=2;//可改其指向地址的值
//写法3,同时存在
const int *const p3=&a1;//除初始化外,不能改地址和指向该地址的值
//p3=&a2;//指针指向的类型不对,这里只能指向int类型的地址
//p3=&a3;//除初始化外,不能改其地址
//*p3=2;//但不能改指向地址里面的值
return 0;
}