C言語って… (275レス)
上下前次1-新
抽出解除 必死チェッカー(本家) (べ) 自ID レス栞 あぼーん
リロード規制です。10分ほどで解除するので、他のブラウザへ避難してください。
253: 名前は開発中のものです。 [sage] 2015/02/13(金) 16:10:49.40 ID:fRUihGLp(1) AAS
>>242って4年前のレスだぞ…。
一応答えておくと、メモリ上の変数をそのつどレジスタにコピーしてから演算するわけで、
殆どの場合、変数にはメモリが割り当てられている。その辺りの動作は基本的に
コンパイラがうまくやってくれているので知ってさえいればいい。
(あらかじめ作成した)静的変数や(newで作成した)ヒープ上の変数は
必ずメモリ上の実体があるから&aは必ずそこを指す。
一方、(関数内などローカルスコープで一時確保した)動的変数は、コンパイラの最適化によっては
例外的にメモリ上の実体を持たず、レジスタだけということもあるはず。
だけどその関数内で&aという表記が用いられたら、コンパイラは最適化を見送って
きちんとスタック上にメモリを割り当てることになる。スコープから出るまでは&aはそこを指す。
上下前次1-新書関写板覧索設栞歴
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル
ぬこの手 ぬこTOP 0.010s