Ritz

普段は真面目で優しいFラン大学生

Cの勉強が続いた(奇跡)

なんと二日も連続でCの勉強をしてしまった。 そして今回は関数を使うのにポインタまで使ってしまった。驚きの成長である。 まだ簡単な数字しか扱っていないので今後が本番になってくる。 ただ結局ポインタがうまくいっていないというのはエラーやprintfによってわかるからよい。 ポインタも一つの型としてとらえることにしていけばなんとかなるのでは?(まだ配列のポインタまで触ってないのでわからない) Cの教科書を読んでいてなんで関数内でわざわざポインタを使わないといけないのかやっとわかった。 どうやら仮引数に実際の変数を入れても変数自体は変更しないということらしい。 arg=0; void a(int temp){ c=1; } この状態で a(arg); と呼んでもうまくいかないのはこの変数argが最初関数aの中のint tempにコピーされるだけでarg自体は変わらないからだということらしい。 こんなん本読まなきゃわからんわ。 ということでポインタの理解に一歩だけ近づいたような気がする。

今回のCのプログラムでは1,2,3,4,6,9,8,12,18,27.........みたいな数列をプログラムで書いた。もちろんアイディアのもとは数学ガールからである。 この数列は2と3の指数の合計の大きさでわけて並べているらしい。 これを任意の数字をいれて計算するようにした。 なんかすごく馬鹿みたいなプログラムを書いてしまった気がする。もっと効率のいい方法があると思うけど練習なのでとりあえずよしとする。 あと動いたし。なにより思った通りの動作をしてくれたので文句はない。 昨日のフィボナッチ数列のときより相当考えて書いたのでうまく動いたときは結構うれしかった。

実はCでは最終目標としてテキストエディタを作ってみたいという目論見がある。もちろん今はまだ全然できないし(ポインタも理解してないし)いつかの話である。死ぬ前にできたらいいって程度。 ただCを勉強することでもう少し根幹的なプログラムとかそういうことについて知るのにつながるのではないかと思っている。(本当かは定かでない) あとコマンドを使った作業になれるのにもちょうどいいと思っている。 ちなみに昨日TODOリストを作るといっていたが水曜日に作り始める予定だったのでやっぱりやめた。 TODOリストは明日から作っていきたい。ただ今のところまったく画面とか想像できてないのでだいぶ適当な感じになりそう。 1000文字いったのでここで終わり