zoukankan      html  css  js  c++  java
  • 指向const对象的指针 const指针

       1. 指向const对象的指针

        指向const对象的指针是一个指针,但是不能通过它来修改它所指向的对象的值。

        声明方法:

        const int *p;

        const指针对象在初始化后不允许对指针指向的对象的值进行修改,因此不能用一个普通的指针指向一个const

        指针对象。否则,如果可以用普通指针修改const指针对象的值,那就失去了const的意义。例如:

        const int i = 1;

        int * p = &i;             // ERROR!

        const int *p = &i;    // OK!

        需要注意的地方:

        指向const对象的指针本身不是const类型,所以这个指针可以指向另一个const对象;

        指向const对象的指针可以被赋予一个非const对象的地址,但是不能试图通过此指针来修改该对象的值。

        2. const指针

        const指针就是一个指针,但是它本身是const类型的。所以它初始化后不能再改变它的指向,即不能让它再指

        向一个新的对象。

        声明方法:

        int* const p;             // 指向非const对象的const指针

        const int* const p;    // 指向const对象的const指针

        const指针可以指向const对象和非const对象,但是两者声明方法不同。使用const指针不可以修改其地址值,但是const指针指向非const对象,可以利用它修改它所指向的对象的值。

        要弄清以上两者的区别,只要明确两点:

        1. 指针本身是const型还是非const型;

        2. 指针所指向的对象是const型还是非const型。

        const类型变量的值在初始化之后是不允许改变的,那么const指针的指向就是不能改变的,const对象的值是

        不能改变的。

        为了区分上述的两点,有一个很简单的方法:

        如果指针名前紧邻的关键字是const,那么它就是一个const指针;如果声明指针所指向的对象类型前有const

        关键字,那么它就是一个指向const对象的指针。

        const int *p;

        int * const p;


  • 相关阅读:
    HDU 2236 无题Ⅱ
    Golden Tiger Claw(二分图)
    HDU 5969 最大的位或 (思维,贪心)
    HDU 3686 Traffic Real Time Query System (图论)
    SCOI 2016 萌萌哒
    Spring Boot支持控制台Banner定制
    构建第一个Spring Boot程序
    Spring Boot重要模块
    Java fastjson JSON和String互相转换
    BCompare 4 Windows激活方法【试用期30天重置】
  • 原文地址:https://www.cnblogs.com/yuzaipiaofei/p/4124651.html
Copyright © 2011-2022 走看看