C言語 の ポインタ をわかりやすく説明
C言語 でつまずくのが ポインタ です。
ポインタ変数に変数のアドレスを代入することまでは分かります。
ポインタの宣言と変数のアドレスの代入
int *p = &x;
ポインタの宣言
データ型 *ポインタ変数名;
アドレスを代入
変数に「&」をつけるとそのアドレスが取得できます。
&変数名;

サンプルプログラム
#include <stdio.h>
int main() {
int x = 10;
int *p = &x; // ポインタ変数pの宣言と変数xのアドレスの代入。
printf("変数xのアドレス = %p\n", &x);
printf("ポインタ変数pの示すアドレス = %p\n", p);
return 0;
}
上記を「pointer.c」の名前で保存しコンパイルします。
実行ファイル名を指定
実行ファイル名を指定する場合は「-o ファイル名」をつけて「gcc -o sum sum.c」のようにコンパイルします。
gcc -o pointer pointer.c
「pointer」と入力して実行します。

ポインタ変数pに代入された変数xのアドレスが指し示す先の中身を操作

#include <stdio.h>
int main()
{
int *p, x; //int型の変数xとint型のポインタ変数pの宣言
p = &x; //ポインタ変数pに変数xのアドレスを代入
x = 10; //変数xに10を代入
printf("x = %d\n", x); //変数xの値を出力
*p = 100; //ポインタ変数pに代入された変数xのアドレスが指し示す先の中身に100を代入
printf("x = %d\n", x); //変数xの値を出力
return 0;
}
アドレスの指し示す先に格納されている値を操作
*を用いることで、そのアドレスに格納されている値にアクセスすることができます。
*変数名
実行ファイル名を指定
実行ファイル名を指定する場合は「-o ファイル名」をつけて「gcc -o sum sum.c」のようにコンパイルします。
上記を「pointer2.c」の名前で保存しコンパイルします。
gcc -o pointer2 pointer2.c
「pointer2」と入力して実行します。


ディスカッション
コメント一覧
まだ、コメントがありません