「またまた私です。説明し忘れたことがあったんですよ。変数とメモリアドレッシングについて説明しますね。あまり深く掘り下げるつもりはないですが、少なくとも何か 1 つは覚えておくといいでしょう。」
「'何か理解できれば、それでよし。理解できなくても、大丈夫' という先生のアプローチに納得です。」
「愛は強要できませんよね?当然のことです。きみの惑星でもそうじゃないですか?」
「いいえ、私たちのアプローチは違います。勉強はやりたかったらやります。でも、やりたくなくても嫌々やります。」
「なんて遅れた勉強の仕方なんですか!それだとエネルギーと時間がたくさん無駄になるし、良い結果もでませんよ。」
「確かに無駄にしてますね。悲しくなる話はやめておきましょう。」
「了解。では、Excel を想像してください。誰でも知ってるあの Excel です。Excel シートはセルで構成されています。各セルにはそれぞれ一意の識別子があります (A1、A2、…B1、B2 など)。セルの識別子が分かっていれば、いつでもそれに値を書き込んだり、そこに保管されている値を取得したりできます。実は、コンピューターのメモリも同じように整理されているんですよ。」
「ここまで問題ありません。」
「プログラムそのものとプログラムのデータは、プログラムの実行中にメモリに保管されます。すべてのコンピューターメモリは小さなセル、つまりバイトに分割されます。各セルには 0、1、2、3 といった一意の識別子、つまり数字 (数字は 0 から始まる) が関連付けられています。セルの番号が分かっていれば、それにデータを保存する、またはそこからデータを取得する、といったことができます。一部のセルにはプログラムのコード、つまりプロセッサーに対する一連のコマンドが保管されます。他のセルにはプログラムが使用するデータが保管されます。各セルの番号はその 'アドレス' と呼ばれます。」
「教授からプロセッサーとコマンドについて聞きましたが、細かいことはまだです。」
「プロセッサーはメモリに読み込まれるコマンドを実行することができます。プロセッサーに対するコマンドは、'セルからデータを取得しろ、それを使って何らかのアクションを実行しろ、結果を他のセルに送信しろ' といった内容がほとんどです。数百ものシンプルなコマンドを組み合わせて、複雑なんだけれども役に立つというコマンドを作ります。」
「でも、どうしてそんなことをする必要があるんですか?」
「コードの中で変数が宣言されると、それに未使用のメモリが割り当てられます。通常は数バイト分のメモリです。変数を宣言するには、プログラムがその中に保管する情報のタイプ (数字、テキスト、他のデータなど) を指定する必要があります。扱いやすくするために、各変数に一意の名前が割り当てられます。」
「変数は名前であり、タイプであり、メモリの一部であり、値でもあるってことですか?」
「そのすべてがひとまとめになっているんですよ。例をいくつか見てみましょうか。」
コード | 説明 | |
---|---|---|
1 |
|
この行では s 。テキストを保管するために使うので、その型を String 。同じ関数やクラスの中で同じ名前の変数を 2 つ宣言することはできません。 |
2 |
|
この行では s2 すると同時に "I'm Diego" 。 |
3 |
|
ここでは a 。そのデータ型はそれに保管されるデータの型に合わせないといけません。int というデータ型は integer (整数) を略したものです。 |
4 |
|
ここでは b を作成しています。そのデータ型 (int ) は整数を保管するためのものです。即座に 4 という値が変数に割り当てられています。 |
「ディエゴからタスクをいくつか受け取ってますので、少しずつやっていきましょう。」
GO TO FULL VERSION