計算機実習 I
第九回 (2005年 6月 16日)
総合復習
http://www.sw.it.aoyama.ac.jp/2005/Computer%20Practice%20I/lecture10.html
© 2005 Martin
J. Dürst 青山学院大学
授業への心構え
ポインタの用途
- 低レベルのアドレス操作 (デバイス割り当てなど)
- 動的メモリの管理
- 配列の処理の効率化
- 参照 (関数への渡しなど)
- 間接 (indirection)
配列からポインタへの変換
方程式の適合:
- a[i] → *(a+i)
- a[i][j] → *(*(a+i)+j)
- 遊び: a[i][j] → i[a][j]→ j[i[a]]
array2pointer.c, matrix2pointer.c を参照
動的メモリの使い方
fullrevert.c と simplelist.c を参照
浮動小数点数の仕組み
浮動小数点数は次の物からなる:
- 符号 (sign)
- 指数 (exponent)
- 仮数 (mantissa)
十進数の例: -3.987E20
→ -3.987 × 1020
二進数の浮動小数点数の特徴
- 符号は 1ビット
- 指数には符号があるように思われるがゲタが使われている
- 二進数の小数点の前は (0 以外) 必ず 1
なので実際にメモリを使わない
Intel 等 little endian の特徴:
- バイトの順番は予想と逆になっている (
int
,
short
も同様)
07C1 について
scanf("%s", string)
は空白文字など読まない
- その文字を
getchar()
で飛ばしたいと思うと読みすぎる
ungetc(c, stdin)
で一文字だけ入力に返せる
演習について
- 第 1回から第 9回でまだできてない問題をやる
- できるだけ多くの問題をやる
- 効率よくできるところからやる
課題について
次回の準備
- C: ドライブに作ったプログラムを忘れずに Z:
ドライブに移す
- 今まで作ったプログラムを絶対なくさないこと
- 全体の復習。来週二個目の中間テストがある。
- 新訂新 C 言語入門の第 10-12 章 (ポインタ、pp. 247-303)
を読む。12章を落とさずに。