1 #include<stdio.h> 2 int main(void) 3 { 4 double rates[3] = {11.1,22.2,33.3}; 5 6 const double *pc1;//不可以更改所指向的数据,但是可以更改所指向的地址 7 8 double * const pc2 = rates;//不可以更改所指向的地址,但是更改所指向的数据 9 10 const double * const pc3 =rates+2;// 既不···也不能··· 11 12 pc1 = rates; 13 pc1++; //更改地址 14 15 *pc2 =44.4; //更改数据 16 17 printf("%p %p %p ",pc1,pc2,pc3); 18 printf("%f %f %f ",*pc1,*pc2,*pc3); 19 20 21 return 0; 22 }
总结:1,常量数据的地址 不能赋值给普通 的指针,如果能够赋值,就能通过 指针修改这个常量啦
2、const double *pc1 PC1 没有改变所指向数据的权限了
3、double * const pc2 = rates; 指针指向的地址没法变了,但是内容可以变
指针 操作,要时刻区分这三个概念:指针地址、指针指向的地址、指针指向地址的内容