ポインタとは
ポインタ(pointer)とは,メモリ上の変数を指し示す「矢印」のようなものである。
・ポインタの正体は,『メモリアドレス』と言える。
・変数のメモリアドレス(ポインタ値)を取り出すには,変数名の前に & を付ける。
・取り出したT型変数のポインタ値のデータ型は, T* 型となる。
・T*型の変数(ポインタ変数)を宣言することができ,同型のポインタ値をその中に格納すること(代入・初期化)が出来る。
・ポインタ値の前に * を付けると,ポインタによって指し示されている変数そのものを表すことになる。
以上の基礎事項を,以下のアニメーションで確認する。
/* ポインタの基本的な使い方1 pointer1.cpp */ #include <stdio.h> int main( void ) { int i = 100; double d = 1.23; int * ip = &i; /* iのメモリアドレスをipに代入 */ double * dp = &d; /* dのメモリアドレスをdpに代入 */ *ip = 5; /* ipの指している先,つまりiの値を5に変更 */ *dp = 2.34; /* dpの指している先,つまりdの値を2.34に変更 */ printf( "i is %d\n", i ); /* iの値が変更されている */ printf( "*ip is %d\n", *ip ); printf( "d is %f\n", d ); /* dの値が変更されている */ printf( "*dp is %f\n", *dp ); getchar( ); return 0; }