ホームページ >バックエンド開発 >C#.Net チュートリアル >参照とポインタの違いは何ですか

参照とポインタの違いは何ですか

王林
王林オリジナル
2020-07-18 15:43:4611501ブラウズ

参照とポインタの違いは次のとおりです: 1. プログラムはメモリ領域をポインタ変数に割り当てますが、参照には割り当てません; 2. 参照は定義時に初期化され、後で変更することはできません、ポインタは変更される可能性があります; 3. ポインタを使用する場合は「*」を追加する必要があり、参照は直接使用できます。

参照とポインタの違いは何ですか

まず第一に、ポインタと参照はアドレスの概念です。ポインタはメモリを指し、その内容は指すメモリのアドレスです。参照は、メモリの特定の部分のエイリアスです。

(推奨チュートリアル: c 言語チュートリアル)

詳細な紹介:

プログラムはポインター変数にメモリ領域を割り当てますが、参照には割り当てません。 。

ポインターを使用する場合は、先頭に * を追加すると、参照を直接使用できます。

参照は定義時に初期化され、後で変更することはできません。ポインタは変更できます。つまり、参照されるオブジェクトは変更できませんが、ポインタのオブジェクトは変更できます。

null 参照はありませんが、null ポインタは存在します。これにより、参照を使用するコードはポインターを使用するよりも効率的になります。参照を使用する前にその有効性をテストする必要がないためです。対照的に、ポインタは null にならないように常にテストする必要があります。

リファレンスで「sizeof」を使用すると変数のサイズが取得され、ポインターで「sizeof」を使用すると変数のアドレスのサイズが取得されます。

理論的には、ポインター レベルの数に制限はありませんが、参照レベルは 1 つだけです。つまり、参照への参照はありませんが、ポインタへのポインタは存在する可能性があります。

int **p //合法
int &&p //非法

参照とポインタには異なる効果があります。

たとえば、操作に関して言えば、参照の操作はポインタを変更するのではなく、ポイントされたオブジェクトを直接反映します。また、ポインタの操作は、変更するのではなく、ポインタが次のオブジェクトを指すようにします。指されたオブジェクトの内容。

以上が参照とポインタの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。