MくんのCの学習が進む。私が準備したプログラムに、小さな処理を順次追加してもらっている。毎日、一つずつ処理が追加され、プログラムが形を成してきた。下請けの関数と全体を制御する部分が先に出来ているわけで、そのコーディングを例として、うまくプログラムの追加が出来上がっていく。とはいうものの、C言語を習い始めた者の常として、やはり文字列に関するポインタと配列について理解に苦しんでいる様子。
char *p, c[9] ; の宣言があり、 p = "abcdefgh" が出来て、c = "abcdefgh" が出来ない事を理解するのに時間がかかった。その後、ある文字配列 s[n] の内容を保存するために、ポインタ変数 char *p を用意して、p = s として事足れり、とプログラムしたことがあった。ここは、配列 p[n] を用意して strcpy(p, s) としなければならない。これについては、こちらが指摘するとすぐに間違いに気がついてくれた。この間違いが分かるようになれば、一段階クリアというところかも。
つい一月前までは、BASICでgoto文だらけのスパゲッティプログラムを書いていたMくんが今は、goto文無しのプログラムを書いている。これも、C言語の簡潔さゆえの成果か。たしかに、C言語でプログラムしていると、不思議とgoto文を書く必要性がない。Cとは、たしかによく考えられた不思議な言語であると痛感する。