ポインタの話
おはこんばんにちは。
新人プログラマのJです。
今日は仕事でウォッチドッグタイマーのリセットがかかっている部分を回避しようと必死でやっていたのですが、全く攻略できず挫折気味です。。。
とまぁ、そんなことはさておき
えっ、もうポインタの話するの?って思ったかもしれませんが、当初の方向性と変えたので、順番に変数教えてーっていうスタイルではなく、自分で理解したものを置いておく感じなので、あんまりためにはならないかもしれません(-_-;)
で、C言語のポインタです。
分かりやすく書くかは分かりませんが、自分なりに整理しただけって言うのが前提です。
とりあえず、ポインタって何かって言うと、変数のアドレスの変数です。
うん。それだけ。
色々参考書に書いてあるけどそれが基本。(だと思ってる)
変数のアドレスの変数って、例えると「家(変数)があってその番地(アドレス)が書かれている表札(変数)」みたいな感じですw
で、その変数のアドレスの変数って何?ってことですが、変数って言う箱があったとしますが、それが置いてある場所がアドレス。
そのアドレスを入れるだけの変数がポインタっていう名前が付いているって感じです。
ちなみに、このポインタ。
C言語で一番面倒くさいと言われています。
初見でなんでそんなもん使うんだよって思いましたし、正直実際のプログラムを組まないとその良さと言うか使い方が全く分からないって言うのがいただけない所。
だって、入門書だけじゃ使い方の意味なんて分かるわけがない!
と、Jは思いましたw
ちなみに、面倒くさいのはいろいろあって、
1.ポインタ(アドレス用)変数を宣言する時と使用する時のルールが少し違う点
2.ポインタ変数の中に入っているアドレス先の変数の値を変更できる点
3.関数の途中からだと変数なのかポインタなのか分からなくなる点
個人的に3が一番厄介で、1がその次にややこしくしてて、2は3と1が理解できればなんとなくわかると思います。
ただ、4つ目としてあるのが、配列の場合の操作方法がちょっとややこしいって言うのもあります。
ちなみに、これざっくり書いただけで、ポインタだけで一冊本が書けちゃうほどの内容です。
Jさんは一冊の内容を数行で書こうと思ってたりするので、ざっくり書いちゃってます。
詳しくはまた書こうかなと思いつつ、実はこの話だけで、2日かけてたりしますw
途中で書いたこと忘れてはないんですが、帰ってきてやることやってたら寝てましたw
でも、更新できたので、またぼちぼち更新しようかなと思います。
それじゃまったねー