アプリ版:「スタンプのみでお礼する」機能のリリースについて

メモリセルと変数の関係について勉強しています。

動的(non-static)なローカル変数 bとcが宣言されたあと、
次の文が 出現したとします。

int a = b + c;

問題を解いてるのですが、問題によると、
この文章で 変数とメモリセルが結びつく 機会を二つ答えよ。

「変数aの値が aのメモリセルに保存される」というのが、一つだと考えるのですが、もう一つが思いつきません。

変数bは "int a = b + c;" の以前に、宣言されているので、bとbのメモリセルはこの文より前に結びついてます。
同様にcも この文より前にメモリセルと結びついています。

考えられるのは、b + c なのですが、
a = b + c
の意味が
「b+c の計算結果の値を a のメモリセルに 保存する」
という 答えが二つになります。
a = b +c の意味はこれでいいのでしょうか?

文章がわかりにくくてすみません。
要はa = b + cの本質的意味が知りたいのです。

A 回答 (1件)

なんとなく、問題文自体が不自然な気がしますが……。



int a = b + c;
の意味そのものは、

1) auto 変数である、a を定義する
2) 値、b + c で、a を初期化する

ということになります。

「変数aの値が aのメモリセルに保存される」
ではなくて、
「変数 a が、メモリセルに確保される(この時点では、値は未定)」
「その 変数 a を、b + c の値で初期化する」
の2段階ですね。
    • good
    • 0
この回答へのお礼

回答ありがとございます。
問題文、不自然ですみません。
実は、For the Runtime binding time, give two bindings involving the statement above 
という問題を和訳したので不自然になったのだと思います。
回答、参考になりました。おかげで解決しました。

お礼日時:2007/03/28 02:01

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!