今まではそこまでメモリの中身までを扱うという頭でプログラムを組むレベルに達していなかったので、理解に苦しみましたが、何度も頭の中で反芻して、やっと理解できた気がします。
ただ、実際のところ、どういうシーンで活用できるのかが分からないんですけどね。
ポインタとは、「方向指示器」または「windowsで言う、ショートカット」というたとえが自分の頭の中をすっきりさせてくれました。そしてc言語自体にはものすごい歴史があり、大昔の少ないメモリのなかでいかに効率的なデータの受け渡しをするかどうかの手段である事も理解しました。
int *p ,i;
i=1000; //試しにiに1000を代入してみる。
printf(" i = %d\n",i); //純粋にiの変数を表示、ここではまだ1000
p = &i; //iのアドレスをポインタ変数pに代入
*p = 1; //通常変数モードに切り替えたポインタ変数pに1を代入。つまり「このポインタ変数に示されているアドレスにある数字(実質的にiの変数)を書き換える
printf(" p= %p\n", p); //ポインタ変数xを表示、(iのアドレスを表示)
printf(" i = %d\n",i); //純粋にiの変数を表示
printf("*p= %d\n", *p); //通常変数モードx(iのアドレスにある値を表示)
return 0;
From ゆづ
0 件のコメント:
コメントを投稿