技術共有

c 面接への道を学ぶ

2024-07-08

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

参照とポインタの違いは何ですか?
  • ポインタと参照はどちらもアドレスの概念であり、ポインタはメモリの一部を指し、その内容は指定されたメモリのアドレスです。参照は特定のメモリの別名です。

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

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

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

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

  • 変数のサイズを取得するには参照で「sizeof」を使用し、変数のアドレスのサイズを取得するにはポインターで「sizeof」を使用します。

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