常量指针、指针常量

常量指针:指针所指空间的值不能发生改变,不能通过指针解引用修改指针所指向空间的值,但是指针的指向可以发生改变

指针常量:指针本身是一个常量,指针的指向不能发生改变,但是指针所指空间的值是可以发生改变的,可以通过指针解引用改变指针所指空间的值

区分:const * 的相对位置:const在*的左边,常量指针

const在*的右边,指针常量

例如:

请找出下面程序中有哪些错误()

int main()
{
    int i =10;
    int j=1;
    const int *p1;//(1)
    int const *p2=&i;//(2)
    p2 = &j;//(3)
    int *const p3 = &i;//(4)
    *p3 = 20;//(5)
    *p2 = 30;//(6)
    p3 = &j; //(7)
    return 0;
}

可以看出(6)(7)是错误的,因为指针p2是常量指针,p2指向的值不能发生改变;

指针p3是指针常量,p3指针的指向不能发生改变。

你可能感兴趣的:(c++,数据结构)