[表示 : 全て 最新50 1-99 2chのread.cgiへ]
Update time : 05/10 00:22 / Filesize : 21 KB / Number-of Response : 64
[このスレッドの書き込みを削除する]
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧] [類似スレッド一覧]


↑キャッシュ検索、類似スレ動作を修正しました、ご迷惑をお掛けしました

C言語なら俺に聞け(入門篇) Part 39



2 名前:volatileな名無しさん mailto:sage [2008/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は捨てられ、次のコードへと作業が移る。






[ 続きを読む ] / [ 携帯版 ]

全部読む 次100 最新50 [ このスレをブックマーク! 携帯に送る ] 2chのread.cgiへ
[+板 最近立ったスレ&熱いスレ一覧 : +板 最近立ったスレ/記者別一覧](*・∀・)<21KB

read.cgi ver5.27 [feat.BBS2 +1.6] / e.0.2 (02/09/03) / eucaly.net products.
担当:undef