C言語なら俺に聞け( ..
[
2ch
|
▼Menu
]
■コピペモード
□
スレを通常表示
□
オプションモード
□このスレッドのURL
■項目テキスト
2:volatileな名無しさん 08/11/15 05:06:31 >>前スレ994 たとえば、次のようなコードを書いたとしよう。 a = b = 1 + c; これをコンパイルして実行したとして、コンピュータの中でどういうことがおきるか。 コンピュータは、まず「1」を評価する。 この「評価する」というのは、「1」を整数の1であると認識して、 その整数値1をコンピュータが持っている小さな机の上に乗せることを意味する。 次に、「c」を評価する。 今度は、変数cの中に入っている値(仮に整数の2だったとしよう)を取り出して、 その値(仮に2)をさっきの1と一緒に机の上に並べる。 そして、今度は「1 + c」を評価する。 これは、いま並べて置いた整数値1と2を足して3という数を作り、 「1 + c」という式の値として、改めて机の上に置くことを意味する。 さらに、「b = 1 + c」を評価する。 ここで「1 + c」は3であることがわかっており、それは机の上にある。 そして「=」は代入するという演算子なので、変数bに整数値3を代入(コピー)する。 ここで、机の上の値3はなくなったわけではない。 この値は、「b = 1 + c」という式の値としてまだ残っている。 最後に、「a = b = 1 + c」が評価される。 上で書いたとおり、「b = 1 + c」は3として評価されているから、 変数bに値を代入したのと同様に変数aに3を代入する。 値3は、「a = b = 1 + c」の値として再度机の上に残されるが、 「;」が現れて「この文で行う作業は終わりです」ということになるので、 ここで残った値3は捨てられ、次のコードへと作業が移る。
次ページ
最新レス表示
スレッドの検索
類似スレ一覧
話題のニュース
おまかせリスト
▼オプションを表示
レスジャンプ
mixiチェック!
Twitterに投稿
オプション
しおりを挟む
スレッドに書込
スレッドの一覧
暇つぶし2ch
5383日前に更新/21 KB
担当:undef