ぴかりんの頭の中味

主に食べ歩きの記録。北海道室蘭市在住。

【本】やさしく学べるC言語入門 ―基礎から数値計算入門まで―

2007年05月04日 17時49分55秒 | 読書記録2007
UNIX & Information Science 4 やさしく学べるC言語入門 ―基礎から数値計算入門まで―, 皆本晃弥, サイエンス社, 2004年
・「あなたの専門はなんですか?」と聞かれたら、答えはこの本の分野ということになりそうです。しかし、『専門家です』と胸を張って言えるほどの技術もなく。もっとしっかり勉強しないと。今回は全ての演習問題を解いたわけではなく、さらっと読んだだけ。
・理工系学生用の入門書。大学での授業で使用することを想定し、余計な内容は全て排し授業で消化できる分量にするなど、通常の入門書とは異なるコンセプトで書かれている。gdbを使用したデバッグの方法、makeコマンドによる分割コンパイル、ライブラリについての記述などが入門書としては目新しい。
・「例えば、英語の学習にしても英語の修得を第1目標とするより「海外旅行で困らない英会話力を身につける」とした方が、学習意欲も高まります。プログラミング言語もこれと同じです。C言語を学ぶ目的は数値計算を行うためである、という立場をとった方が理工系の学生には目的がはっきりして、学習意欲の向上が図れることでしょう。」p.i
・「C言語の特徴は、一言でいうと、構造化プログラミングを行うために設計された言語であるということです。もう少し、細かく見ていくと、いい意味でも悪い意味でもC言語にはいろいろな特徴があります。これは、「C言語が、もともとUNIXを開発するために作られた内輪で使用するための言語であった」ということに起因するものであるといえます。」p.7
・「ANSI Cは略称で、正確には ANSI X3.159-1989, American National Standard for Information Systems-Programming Language-C です。」p.7
・「ここで、皆さんに意識しておいてもらいたいことは、「ポインタの概念自身を理解することは簡単だが、C言語でのポインタの扱いが整理されていないため、ポインタの扱い方が難しい」ということです。」p.8
・「特に、double型でデータを読み込む場合は、printf文と異なり、%fではなく%lfとなることに注意してください。」p.31
・「C言語は構造化プログラミング言語です。構造化プログラミングでは、順次(sequence)・選択(selection)・繰り返し(loop)の3つの制御だけでプログラミングを記述できることが証明されています。これを構造化定理といいます。」p.56
・「aのアドレス&aをswap関数に渡すのならswap関数の定義をswap(double &x, double &y)としたくなるところですがswap(double *x, double *y)としてポインタ変数を使わなくてはならないことに注意しましょう。  例えば、double *xとしたときのポインタ変数はxであり、このxにはアドレスを渡す必要があります。そこで、xにはaのアドレスである&aを渡す必要があるのです。」p.78
・「ちなみに、ある言い伝えによると、64枚の円盤をハノイの塔のルールに基づいて僧侶たちが移し換える仕事をしており、この仕事を終えると宇宙が終るということです。64枚を移すには、1枚移動するのに1秒として、どれくらいかかるでしょうか? 宇宙の終りはすぐ来ますか? 各自で計算してみてください。」p.84
・「このことは、「配列はポインタに読み替えられるが、ポインタは配列に読み替えられない」、ことを意味します。」p.94
・「私個人の経験から言えば、数学の内容が理解できないときには、それを英語で考えればすっきりと理解できる場合があります。恐らく、現代数学は欧米を中心に発達してきたので、下手に日本語に訳して読みづらくしてしまうよりは、直接、欧米言語の指向に合わせた方がよいからでしょう。例えば、悪名高いε-δ論法
 ∀ε>0,∃δ>0:0<|x-c|<δ⇒|f(x)-L|<ε
も「For any ε>0, there exists δ>0 such that 0<|x-c|<δ⇒|f(x)-L|<ε」と書けば理解しやすくなります。
」p.97
・「例えば、Sagaという文字列を文字配列に格納したいときには、
 char str[5];
とします。Sagaは4文字だからstr[4]でいいと思いがちですが、C言語では文字列にはその終了を意味する文字としてNULL文字を最後に入れることになっています。
」p.149
・「また、最近ではメモリも安くなり、処理に十分なメモリを搭載することが可能になってきています。したがって、プログラム初心者が共用体を使うような機会はないと思われるため、本書では共用体については割愛してあります。」p.176
・「gccの警告レベルを最大限にあげるには、以下のように-Wallオプションを指定します。」p.178
・「なお、Windowsでは、静的ライブラリの拡張子はlib、共有ライブラリの拡張子はdllとなっています。」p.200
コメント
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする