バイナリーツリーis difficult
C言語 No Comments »そんなことないですよ。ひとつひとつ丁寧に追っていけば難しくはありません。ひとつの問題がわかれば、後はその応用ですから。難しいと考えてはいけません。
そんなことないですよ。ひとつひとつ丁寧に追っていけば難しくはありません。ひとつの問題がわかれば、後はその応用ですから。難しいと考えてはいけません。
可読性が低いかどうかは、主観によるところが大きいので、何ともいません。コーディングする人によって、可読性が高くなったり、低くなったりはしますから。しかし、現在の多くの言語はC言語が基本になっているので、C言語を抑えておくのは、他の言語を習得する上でもプラスになると思います。
まず、メンバ演算子(.)の方が*よりも優先されます。*p.karteは、*(p.karte)という意味になります。メンバ演算子の.は、左側にアドレスではなく値がこなければならないので、p.karteという表現は文法として間違いということになります。したがって、*(p.karte)も文法エラーとなります。
ポインタは「主記憶装置のアドレスを格納する変数」だと理解しておきましょう。
コツは、主記憶装置のアドレスを指定いるのか、アドレスの指定する「値」を参照するのかの違いを見極めましょう。
int *p;
p ポインタが格納しているアドレスのこと
*p アドレスの指定する「値」を参照する
自分が主記憶装置のイメージを描いて、これはアドレスか、アドレスが参照する値かを考えてみるのが近道だと思います。図やイメージがとても重要です。
すべてを覚える方法はありません。構造体のポインタでも、(*p).karteというような形式は試験に出てきません。p->karteの表現がほとんどです。これは問題を解きながら、問題で使われている表現に慣れていくのがいいでしょう。
二重ポインタですね。試験に出題されることもあります。C言語も出題範囲が明確には決まっていないので可能性はあります。ただ、過去問題を見ると出題される確率は高くないですね。
最初は難しく感じるかもしれませんが、最初に仕組みを理解すると後で応用がききます。基本をしっかりと抑えましょう!
テキストの図7.1や、P127の図7.3、P128の図7.4などの動作をよく考えて理解してみよう。それでもし、わからなかったら質問に来てください。質問は、「テキストのここを読んだけれどわからんかった。」というふうに言ってもらえると、回答しやすいです。
C言語は最初なれないと大変かもしれません。テキストに載っている問題から、コツコツ解いてみましょう。今のうちに基本を身につけておかないとこれからが大変ですよ!