常量指针与指针常量

来源:互联网 发布:oracle sql优化 编辑:程序博客网 时间:2024/05/01 17:18



一直以为常量指针所指向的内存区域值不能修改,简直理解的很肤浅:


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指向的内存区域地址已固定,不能做修改,其指向的内存空间区域的值是可以改变的

0 0
原创粉丝点击