常量指针与指针常量
一直以为常量指针所指向的内存区域值不能修改,简直理解的很肤浅:
int pa = 1000;
const int i = 10;
const int *p = &pa; //常量指针,不能通过 *p 来修改其所指向的内存区域
printf(“*p= %d\n”, *p); //输出1000
pa = 2000; //此处 p 所指向的内存区域值已经修改
printf(“*p= %d\n”, *p); //输出2000
//*p = 20;
p = &i; // p 指向的内存空间改变
printf(“*p= %d\n”, *p); // 输出10
可见对于 常量指针 p, 指针不能通过 \*p 来修改其所指向的内存区域所存储的值而已
指针常量:
int \*const p; //p指向的内存区域地址已固定,不能做修改,其指向的内存空间区域的值是可以改变的
还没有评论,来说两句吧...