c语言指向常量的指针和常量指针

指向常量的指针:该指针指向的值不能改变,指针不是常量,所以可以修改指针的指向

int main(void)
{
    int value = 10;
    /*定义一个指向常量的指针*/
    const int *pValue = &value;
    //pValue = &value;

    /**
     * 
     * 编译器会报错,*pValue是只读的。
     * 也就是指针指向的值不能改变
     */ 
         /**
         * 这个赋值编译器会报错 assignment of read-only location '*pValue'
         * 因为*pValue指向的值是常量,所以不能改变。
         */
    *pValue = 20;
    /*但可以对value的值进行改变*/
    int number = 30;
    /**
     * 指针不是常量,所以可以修改指针的指向
     */
    pValue = &number;
    return 0;
}

常量指针
#include <stdio.h>

/**

  • 常量指针
  • 指针中存储的地址不能改变
    /
    int main(void)
    {
    int value = 10;
    int
    const pValue = &value;

    int item = 34;
    /**

    • 编译器报错,assignment of read-only variable 'pValue'。
    • 说明不能修改指针中存储的地址
      /
      pValue = &item;
      /
      但是可以修改地址所指向的值/
      pValue = 24;
      return 0;
      }

猜你喜欢

转载自blog.51cto.com/xtceetg/2446834