简单区分常量指针和指针常量的小技巧

hnu-hua / 2025-01-20 / 原文

指针常量和常量指针

介绍

推荐一个文章,有介绍指针常量常量指针,本文就不做另外的篇幅去介绍

彻底理解——指针常量和常量指针、指向常量的常指针-CSDN博客

区分的方法

该方法简单好用,掌握了以后就再也不会分不清这两个东西了

只要记住这句话:const默认是修饰它左边的符号的,如果左边没有,那么就修饰它右边的符号

举例:

  1. const int *p;左边没有,看右边的一个,是int,自然就是p指针指向的值不能改变

  2. int const *p;此时左边有int,其实和上面一样,还是修饰的int

  3. int* const p :修饰的是*,指针不能改变

  4. const int *const p :第一个左边没有,所以修饰的是右边的int,第二个左边有,所以修饰的是 * ,因此指针和指针指向的值都不能改变

  5. const int const * p :这里两个修饰的都是int了,所以重复修饰了,有的编译器可以通过,但是会有警告,你重复修饰了,有的可能直接编译不过去