C言語

やっぱりポインタの話

少し前、以下の記事がホットエントリに上がっていました。 givemegohan.pigboat.jp タイミング的にかなり遅れてしまいましたが、せっかくCの話題が出たことですし、宣伝しますよ。 メモリとアドレスの話 ポインタの話をするにあたり「例え話をしない」という…

ブロックの先頭以外での変数宣言について

今日の元ネタは以下のページです(古い記事ですが)。 blog.jnito.comまあ大筋で異論はないのですが、以前からあまり納得がいっていないのが、冒頭の 「1.使われるローカル変数をすべてメソッドの最初に宣言する。」 です。確かにC90までは、ローカル変数はブ…

C99の可変長配列(VLA)はどれぐらい便利なのか

いわゆるANSI C(C90)では、配列のサイズは定数でなければなりません。つまり、配列を宣言する際には、 int a[10]; のように[]の中には定数を書く必要があり、 int a[size]; のように変数を書くことはできません(gccでは昔からできたりしましたが、それはgcc…

なぜあなたは「配列へのポインタ」を学ぶ必要があるのか

かつて(20年くらい前)一緒に仕事をしていた人が、こう言ったことがあります。 はっきり言って、Cプログラマの過半数は、「配列へのポインタ」を理解していないと思う。 まあ「過半数」かどうかはわかりませんが、実際、それなりに長くCを使っている人でも、…

プログラミング言語C(K&R)邦訳のバージョン違いについて

プログラミング言語C(通称K&R)の邦訳版と言えば、 ANSI C対応以前のもの。白い表紙。 第2版。ANSI C規格準拠。薄緑の表紙。 第2版訳改訂版。訳だけ改められた。白い表紙。 の3種類だと思っていたのですが、第2版訳書改訂版に、私が持っているのとは異なる(古…

Cの宣言は英語順で読もう、という話

Cでのポインタの読み方上記のページ、現時点ではてなブックマークが1241ついています。同趣旨のことを私は1998年に以下のページに書きました。 配列とポインタの完全制覇 こちらのはてブ数は212…… きいいっ! 悔しい!!などという話はさておき。上記ページに関…