简述指针常量与常量指针的区别

  • 指针常量是指定义了一个指针,这个指针的值只能在定义时初始化,其他地方不能改变。常量指针是指定义了一个指针,这个指针指向一个只读的对象,不能通过常量指针来改变这个对象的值。
  • 指针常量强调的是指针的不可改变性,而常量指针强调的是指针对其所指对象的不可改变性。

「注意」:无论是指针常量还是常量指针,其最大的用途就是作为函数的形式参数,保证实参在被调用函数中的不可改变特性。

发表评论

后才能评论

评论(6)

  • 小情绪 普通 2022-08-14 7:24 下午

    //const修饰指针:常量指针 -> 特点:指针的指向可以修改,但指针指向的值不可以修改 -> const int * p = &a
    //
    //const修饰常量:指针常量 -> 特点:指针的指向不可以修改,但指针指向的值可以修改 -> int * const p = &a
    //
    //const既修饰指针,又修饰常量 -> 特点:指针的指向不可以修改,但指针指向的值也不可以修改 -> const int * const p = &a

  • 文峯 普通 2022-05-12 8:06 下午

    常量指针(int *const p=&a):

    指针的指向(存放在指针的那个地址)不可以改变,但指针所指对象的值可以改变。
    (正确:*p=20 错误:p=&b)

    指针常量(const int *p=&a):

    指针所指对象的值不可以改变,指针的指向可以改变。
    (错误:*p=20 正确:p=&b)

  • ? ? ? ? ? 普通 2021-08-29 7:52 下午

    29和25重复了