自分なりに理解を深めて行った結果、結局ポインタというのは、メモリの効率利用のための手法であるのではないかと思っている。
ポインタにはポインタ型、ポインタ変数、ポインタ値というのがあって、他の型とくっついて稼働する。
変数宣言したときに確保したメモリ領域を効率的に使い回しするためには、そのアドレスについてどこかに控えておいた方が効率がいい。
いちいちアドレスを調べてからその値を取得してそのアドレスに代入という形を取るよりも、ポインタで示しといて、後からポインタを使って書き換えて行く方が便利がいいし、必要以上に変数宣言する必要もなくなってくる。
結果物理領域の使用効率性も高まるし、コンピュータにとってもわかりやすいプログラムになると言う事だと思われる。
つまり、というか、真理として、&でアドレス調べて*で使う。これだけでいいわけだ。
とまあ、ここまでが昨日ポインタについて頑張って勉強してみた時点の理解。今後学習を続けて行って、更なる理解が深まる自分に期待したい。
//ポインタ変数pにiのアドレスを代入する例 int main(void){ int *p, a; //ポインタ変数pと変数aを宣言 p=&a; //変数aのアドレスを&で取得して、ポインタ変数pに代入 printf("p=%p\n",p); //ポインタ変数pのアドレスを%pで取得 printf("a=%p\n",&a); //変数aのアドレスを&で指定し、%pで取得 } //結果 //p=0x7fff5fbff8bc //a=0x7fff5fbff8bc
0 件のコメント:
コメントを投稿