参照とポインタの違いは次のとおりです: 1. プログラムはメモリ領域をポインタ変数に割り当てますが、参照には割り当てません; 2. 参照は定義時に初期化され、後で変更することはできません、ポインタは変更される可能性があります; 3. ポインタを使用する場合は「*」を追加する必要があり、参照は直接使用できます。
まず第一に、ポインタと参照はアドレスの概念です。ポインタはメモリを指し、その内容は指すメモリのアドレスです。参照は、メモリの特定の部分のエイリアスです。
(推奨チュートリアル: c 言語チュートリアル)
詳細な紹介:
プログラムはポインター変数にメモリ領域を割り当てますが、参照には割り当てません。 。
ポインターを使用する場合は、先頭に * を追加すると、参照を直接使用できます。
参照は定義時に初期化され、後で変更することはできません。ポインタは変更できます。つまり、参照されるオブジェクトは変更できませんが、ポインタのオブジェクトは変更できます。
null 参照はありませんが、null ポインタは存在します。これにより、参照を使用するコードはポインターを使用するよりも効率的になります。参照を使用する前にその有効性をテストする必要がないためです。対照的に、ポインタは null にならないように常にテストする必要があります。
リファレンスで「sizeof」を使用すると変数のサイズが取得され、ポインターで「sizeof」を使用すると変数のアドレスのサイズが取得されます。
理論的には、ポインター レベルの数に制限はありませんが、参照レベルは 1 つだけです。つまり、参照への参照はありませんが、ポインタへのポインタは存在する可能性があります。
int **p //合法 int &&p //非法
参照とポインタには異なる効果があります。
たとえば、操作に関して言えば、参照の操作はポインタを変更するのではなく、ポイントされたオブジェクトを直接反映します。また、ポインタの操作は、変更するのではなく、ポインタが次のオブジェクトを指すようにします。指されたオブジェクトの内容。
以上が参照とポインタの違いは何ですかの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。