C言語ポインタ完全制覇、読了(ポインタの概念がわかる良著)
- 作者: 前橋和弥
- 出版社/メーカー: 技術評論社
- 発売日: 2001/01
- メディア: 単行本
- 購入: 22人 クリック: 147回
- この商品を含むブログ (75件) を見る
↑の本を読んだので感想等。
[なぜ読んだか]
体系的に一度もポインタについて学んでいなかったので、そろそろしっかり学んでおくかという気になった。
[私のポインタに対する理解(読む前)]
会社ではC言語を使って開発をしている。
さすがにもう2年以上C言語を使っているので、ポインタの使い方くらいは理解できている、という感じ。
(研修で初めてポインタに触れたときも、実はあんまりポインタに苦しめられた覚えはない。)
[本の感想]
だいたい知っていることが書かれていたが、C言語はメモリをどう確保するのか、という点については初めて知れたので良かった。
どのタイミングでどこに(スタック or ヒープ)メモリを確保して、いつまで保持しておくのかなど、普通に使っているだけではわからないことなので、テストコードと共に解説がしっかり書いてあるのは本当にありがたかった。
メモリ管理=内部で勝手に行われてること=ブラックボックス、みたいに捉えているのはもったいないので、この本を読んで克服しましょう。せっかくの C 言語なんだし。
この本を読むことで、自信を持って他人にポインタの使い方や仕組み?を教えてあげられるようになると思う。
なお、いろいろなところで書かれているが、初心者がいきなり読むにはきつい。
きついというか、つまらないと思う。
[面白かったこと]
以下のコードを見ていただきたい。
#include <stdio.h> int main (void) { int array[4] = {0, 1, 2, 3}; printf("array[3] = %d\n", array[3]); // 当然 array[3] は 3 printf("array[3] = %d\n", 3[array]); // じゃあこれは??? return 0; }
どちらも同じ出力になるんですねこれが。
hoge[i] という書き方は、シンタックスシュガーと呼ばれ、コンパイラは *(hoge+i) に展開してしまうそう。
なので、一見意味不明な i[hoge] という書き方でも警告は出ないし、ましてやエラーにもならないんですね。
これは面白い。