Javaの参照とC++のポインタの違い

王林
リリース: 2019-12-31 16:38:26
オリジナル
2493 人が閲覧しました

Javaの参照とC++のポインタの違い

Java 参照と C ポインタは両方ともメモリ アドレスを指します。メモリ データに対する操作は参照またはポインタを通じて完了しますが、実装、原理、機能などに違いがあります。 。

(1) 型:アドレスを値とするデータ要素への参照 Javaでカプセル化されたアドレスは文字列に変換して表示できるため、長さを気にする必要はありません。 C ポインタはアドレスを保持する変数で、長さは通常コンピュータのワード長であり、int と考えることができます。

無料のオンライン ビデオ チュートリアルの推奨: java ビデオ チュートリアル

(2) 占有メモリ: 参照が宣言されているときにはエンティティは存在せず、領域を占有しません。 C ポインターには、宣言後に使用される場合にのみ値が割り当てられます。メモリが必要ない場合、メモリは割り当てられません。

(3) 型変換: 参照の型変換が成功しない可能性があります。実行時に例外がスローされるか、コンパイルが成功しません。 C ポインタはメモリ アドレスを示し、メモリを指します。プログラムにとってはアドレスですが、指すアドレスはプログラムが望むものではない可能性があります。

(4) 初期値: 参照の初期値は Java キーワード null です。 C のポインタは int なので初期化しないと値が固定されず大変危険です。

(5) 計算: 参照は計算できません。 C のポインターは int で、 や -- などの計算が可能なため、ポインターは配列添字の代わりによく使用されます。

(6) メモリ リーク: Java 参照によってメモリ リークが発生することはありません。 C ポインタはメモリ リークを起こしやすいため、プログラマは C ポインタを注意深く使用し、適時にリサイクルする必要があります。

(7) パラメータとして: Java メソッドのパラメータは値のみを渡します。参照をパラメータとして使用すると、関数内で参照される値のコピーが得られるため、2 つの参照を交換することは無意味です。関数内のパラメータ。関数はパラメータの COPY 値を交換するだけであるため、参照パラメータの COPY によって参照されるオブジェクトは参照と同じオブジェクトであるため、関数内で参照パラメータのプロパティを変更することは理にかなっています。パラメータ。

C ポインタが関数のパラメータとして使用される場合、実際に関数によって操作されるのはポインタが指すアドレスであるため、関数内でポインタ パラメータを使用する操作は、ポインタが指すアドレスに直接影響します。ポインタ (変数、オブジェクト、関数など)。

おすすめの関連記事とチュートリアル: Java 入門チュートリアル

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

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート