C ++:const参照、参照、constのポインタ、ポインタ定数


オンラインの文:

コード 名前 意味
const int型&R
int型のconst&R
一定の基準
のconstへの参照
結合定数の参照
INT&constのR 定数の参照 ステートメントは、エラー・コードが実行されていません
const int型* P
int型のconst * P
constポインタ
のconstへのポインタ
ポインタ定数
int型* constのP ポインタ定数の
のconstポインタ
ポインタ自体が一定であります

C ++入門:

コード 名前 意味
const int型&R
int型のconst&R
一定の基準
のconstへの参照
へのconst参照
INT&constのR 定数の参照 ステートメントは、エラー・コードが実行されていません
const int型* P
int型のconst * P
一定の指し示すポインタ
のconstへのポインタを
ポインタ定数
int型* constのP constポインタ
のconstポインタ
ポインタ自体が一定であります

概要

  1. 一定の基準規定は、その結合が参照するオブジェクトを変更することはできませんが、他の方法でオブジェクトを変更することができます。
    int i = 1;
    const int &r = i; //r绑定i,其后对r的操作实际上是针对i进行的
    r = 2;            //错误,不能通过修改r来实现对i的修改
    i = 2;            //i可修改
  1. 何の参照定数はありません。参照は、初期化時にオブジェクト(左値)に結合させることができるので、後に他のオブジェクトを再バインドしない、操作が実際に操作を実行するためにバインドされたオブジェクトの参照を参照している、結合関係が変化していません無意味const参照自体によって修飾。
    int i = 1;
    int &const r = i;

ランタイムエラー

  1. const int型&R int型のconst&rに相当し、constのintは* pはint型のconst * Pと同等です。一般的な手順は、constのint型int型のconst、constのint型したがって、より一般的に使用されるに変換されます。
    int i = 1;
    const int &r1 = i;
    int const &r2 = i;//r2的类型:const int &
    const int *p1 = &i;
    int const *p2 = &i;//p2的类型:const int *
  1. pとint型のconst * P、constので批判的な視線* constのint型を区別します。CONST *の前に、constの修正は、定数へのポインタをタイプを説明しました。CONST *後、記載CONST修飾はポインタであり、ポインタ自体は一定です。
    int i = 1;
    const int *p1 = &i; //const修饰int,则p1指向const int
    int *const p2 = &i; //const修饰p2,则p2是常量
  1. constポインタ異なるオンラインと書籍版。必要に応じて、CONST intはint型* *のconst P自体にPと呼ばれる一定の指し示すポインタをポインタ定数と呼ばれていない限りお勧めします。そのようなトラブルスポットが、意味が間違っているものの、それが混同されることはありません。
    int i = 1;
    const int *p1 = &i; //指向常量的指针
    int *const p1 = &i; //本身是常量的指针

個人共通名:

コード 名前
const int型&R
int型のconst&R
結合定数の参照、定数を参照し、一定の基準
CONSTを参照
INT&constのR 一定の基準は存在しません。
const int型* P
int型のconst * P
一定の指し示すポインタ
のconstへのポインタを
int型* constのP 自身のconstポインタ
のconstポインタ
const int型* constのP 定数の指示対象そのものとポインタがあります
int型*&R 結合ポインタ参照、ポインタ参照
のconstポインタ

参考ブログ:このすべてのためのC ++の定数ポインタとポインタ定数アウトソート(非常に詳細な、一見の価値)

公開された77元の記事 ウォン称賛25 ビュー10000 +

おすすめ

転載: blog.csdn.net/qq_34801642/article/details/104677031