独学でプログラミングしてきた道を書き連ねて行きます。
C言語のポインタについて。
2009年11月05日 (木) | 編集 |
「C言語のポインタを理解するのはとても難しい」

と昔からよく言われますが、
前橋 和弥さんの本
「C言語ポインタ完全制覇」には、非常に分かりやすく書いてあります。

私がそれを読んで理解したのは、
ポインタと変数の関係がWindowsで言うところの、
実ファイル が C言語の「値の入った変数」
ショートカット が C言語の「その変数の場所を指し示すポインタ」
という関係でしょうか。

ポインタと配列は似ているというのも
*(p+i) と p[i] は同じ意味だということや、
その場合の p は p[0] と同じで pの値は先頭のアドレスを返すということ。
など。

まだまだ完全に理解するまで至っていませんが、
少しわかってから他の人のソースを見ると、値の動きがイメージしやすくなります。

超初心者だからこそ、基本を押さえて勉強する方がプログラムの理解が早くなると思います。


C言語プログラミングを始めるにあたって
2009年11月01日 (日) | 編集 |
C言語を始めてみようと思う超初心者はどこまでのレベルかわかりませんが、
理解していなかった内容を理解した分だけ少しづつ書いていきます。

まず初めに、プログラムを作るというと、何万円ものソフトを買わないとできないのではないかと思うかも知れませんが、C言語(C++)プログラミング無料でもできます。

一番簡単なのが、Boland C++コンパイラを使用する方法。
こちらのページで分かりやすく説明されています。

まずは開発環境を整えるところからプログラミングがスタートします。



テーマ:プログラミング
ジャンル:コンピュータ
Windowsでのプログラミングには最低以下の方法を学ばなければならない(と思った)
2009年10月31日 (土) | 編集 |
・Cの文法
・C++の文法
・WindowsAPIの文法(ウィンドウフォームを一から作成する場合)
・オブジェクト指向(カプセル化、ポリモーフィズム等)

ここまでわかっただけでも、大枠が見えるようになってきたので、

まずはBolandのコンパイラを使い、
C++でいくつかサンプルプログラムを作っていきながら
文法と動作を覚えていったらよいのではないだろうか、

その後リファレンスを見ながら、「目的」に対する「手段」を探し、
その組み合わせによってプログラムを完成していくようにする。


C言語の勉強をを始めようと決意したのは、
2009年10月31日 (土) | 編集 |
日経ソフトウェア 2008年3月号の付録本
「C言語まるごと学習ブック」の中で、

「15のキーワードで眺めるC/C++の全体像」
「Cで学ぶべき10のポイント」
この二つを読んでやっとC言語のことが理解でき、開眼しました。
(執筆は両方とも矢沢久雄さんでした。)

読んでわかったのが、

C++はCが元になっているので基本的文法は同じだが、
クラスの理念が加わっているため、オブジェクト指向プログラミングが可能ということ

特にプログラム上では「型」(int等)は実体を持たず、「変数」を入れることで実体になる。
同様に「クラス」も「型」であり実体を持たず、「インスタンス」になって初めて実体となる。
ここでいう「実体」はコンパイル後に「メモリ上に存在」するかどうか。


↑ここが私にとってターニングポイントでした。

プログラムで書いている内容全ての命令(関数)がマシン語に変換されるわけではなく、その命令によって実際の値が変化する部分がマシン語に変換されると言うこと。だから、main関数内で直接値を変化させる計算を多用するより、関数で単純化したほうが人間にとっても、機械にとっても読みやすいプログラムになる。

まあ、大半がコンパイラの能力なんですが。

いままでボンヤリしていた謎がスッキリしました。

テーマ:プログラミング
ジャンル:コンピュータ