プログラマーではないが、特殊な業務上の事情でプログラムを色々と書かないといけなかった。
もう転職して何年にもなるけど、その前職ではN88-BASICに始まり、QuickBasic、VisualBasicとBasic畑を突き進んだ。
一度だけ、C言語に挑戦するべきかどうか迷ったことがある。
速度の点でしばしば問題になることが多かったからだ。
それでも、色々とアルゴリズムなどを工夫してBasicで何とかしてきたが、0.1秒間隔の正確な時間単位で連続リアルタイム処理をするとあるプログラムを作っていた時にはほとんどお手上げになった。
最終的にはものすごい裏技的な、実に納得のいかない記述方法をとるとどうにかなってしまったのでBasic(VB)でなんとかなったけど、解決するまでの間、カーニハン&リッチーの「プログラミング言語C」などを買ったりしてたっけ。
理屈はそれなりに分かってたが、頭がこんがらがることこんがらがること。
こっちがポインタで、アドレスの指し示す変数がこれで、こう書くとポインタの意味になって、こうやって代入して、変数の中身はこれで、いやいやこっちがアドレス値だから、アドレスの指し示すポインタが…、…、…、あーもう!どれがどれやねーん!!!!!
C言語で記述することができれば、問題が解決することは分かってたし、ポインタの扱いをうまくやれば速度の問題は全くなくなることも分かっていたが、悪戦苦闘してもお手上げだった。
分かっている人からすれば笑い話なのだろうけど、当時は時間に追われてたし、勉強する暇もなかったから結局ポインタを理解できないままC言語を放り投げてしまった。
要はコンピュータそれ自体を扱う言語とコンピュータに扱われる言語の違いなんだろう。
嫁をうまく扱うより、嫁の尻にひかれている方がやっぱ俺的には楽なんだよな。
まさにあなたのような人が、なんで(Why)ポインタがわからなくなるのか知りたかったんだけど、あなたの記事を読んでもやはりわからなかった。 ポインタ理解派と理解できない派は何...
メタが理解できないってことじゃないの? プログラマだって、for文で書くと分かるけどΣで書くと分からないとか言い出す人結構いるし、 行列演算のプログラムは書けても、線形代数の...
理屈は分かってるみたいだから多分慣れの問題かと。
>まさにあなたのような人が、なんで(Why)ポインタがわからなくなるのか知りたかったんだけど、あなたの記事を読んでもやはりわからなかった。 正確に言えば、分からなくなったの...
基本的に「ポインタという概念が分からない」ではなく「ポインタを扱うための方法がややこしすぎる」なのだと思う。
逆かも。シンプルすぎるのかもよ。 だって*を付けるだけですよ?
うーん、文字列や配列を扱うときの面倒くささとか考えると、*付けるだけってわけにはいかないなあ。
何かで、「ポインタで躓く原因の大半は"*"にある」って読んだ。 ポインタ型だけ突然に記号が出てくるからね。 C#とかだとオブジェクト型は実はポインタなんだけど、そうと感じさせ...
最初からポインタを教えればいいと思う。 最初は自動変数でメモリとか隠しておいて、ポインタになっていきなり「実はメモリというもんがありまして…」じゃ混乱するのもしょうがな...
「ポインタ」というのはあくまでc/c++のローカルルールだろ。 それだけのために初心者プログラマに負担を押し付けるのもなぁ。
いや別にポインタじゃなくてもなんでもいいんだけど とにかくメモリを自分で操作することを最初から教えればいいってこと。 というかそもそもポインタの話をしてたんだと思ったが。...
ポインタを理解させたいがためにプログラムへの入り口を限定するのは初心者にとっても負担だろう、というだけの話だよ。
だから、わざわざCを勉強したのにポインタを理解できないような奴は何も勉強してないのと同じなんだから、 Cをやるつもりなら最初からポインタを教えればいい、と言っている。 それ...
先に、メモリを直接扱うにはどうすればいいかを考えて、次にそれがC言語の書き方ではどうなっているか調べればいいと思う。 メモリを直接扱うってのは、メモリにロードされたデータ...
「ポインタが理解できない派」はそれができないから理解できないんだよ。 おそらく、抽象的に考える力が弱いのかなと思う。 俺は学校でアセンブラもやったしポインタが解らないなり...