参照とポインタの違い
メニューを表示するにはスワイプしてください
参照とポインタは、変数の値への間接的なアクセスを提供します。ただし、いくつかの重要な違いがあり、それぞれに長所と短所があります。
構文
-
ポインタは
*記号を使って宣言します。 -
参照は
&記号を使って宣言します。
初期化
空の参照は宣言できません。しかし、nullptr を使って空のポインタを宣言することは可能です。
再代入
参照は再代入できず、別のオブジェクトを参照することはできません。
main.cpp
12345678910111213#include <iostream> int main() { int x = 125, y = 500; // creating a reference to x variable int& ref_x = x; ref_x = y; // attempt to re-assigned ref_x ref_x = 0; std::cout << x << ' ' << y; }
ポインタは再代入が可能で、異なるメモリアドレスを指すことができます。
main.cpp
12345678910111213#include <iostream> int main() { int x = 125, y = 500; // creating a pointer to x variable int* ptr = &x; ptr = &y; // attempt to re-assigned ref_x *ptr = 0; std::cout << x << ' ' << y; }
値へのアクセス
ポインタが指す値にアクセスするには、参照外し演算子 * を使用。参照の場合、特別な演算子は不要で、参照変数をそのまま使用。
ポインタと参照はどちらもメモリ管理において重要であり、プログラムの柔軟性に寄与。使用方法は状況に依存。
すべて明確でしたか?
フィードバックありがとうございます!
セクション 3. 章 3
AIに質問する
AIに質問する
何でも質問するか、提案された質問の1つを試してチャットを始めてください
セクション 3. 章 3