カイテハイケナイソースコード
書いてはいけないソースコード
ちょっとアタマの体操(?)です。
int n=1;
n = n++ + ++n;
print n;
上のようなコードを実行した場合、nはいくつになるでしょう?
答えは、ひとつではありません。処理系依存で、様々な解答が返ってきます。
あなた脳で処理した場合、結果はいくつですか?
その回答に至った結果は?
是非、ご意見をお聞かせください。
僕の脳内では「最終的にn++が評価されて、1+1=2」です。
- 2002/06/20更新
- 2002/06/20登録
- 2047クリック
「書いてはいけないソースコード」を検索
このキーワードを共有する
-
メイン
コメント (11)
最新コメント5件
2002/06/20
タムら屋 スタックに値を積んで計算するタイプのコンパイラは4、レジスタに値を保存して計算するタイプでは5になるものが多い様です。まぁ、こんなコードは書くなってオチなんですけどね (^^;
2002/06/21
べ 単項演算子は二項演算子より優先度が高いというのが仕様のはずなので,3が言語仕様通りという気がしますが,これを正しく3にするコンパイラを書くのは難しいですね。「n = n++ + ++n;」を「曖昧な表現だ」って怒ってコンパイルエラーにするちうのが正解かも(笑)。
2002/06/22
タムら屋 むむむ、3になるパターンのアルゴリズムが思いつきません・・・
2002/06/25
olmy C#(CLRか?)と私の頭は4でした...。
タムら屋 実際にコンパイルして3になるコンパイラ、ありませんかねぇ?
- すべてのコメント »
つながりキーワード (1)
これからはじめるプログラミング基礎の基礎
- (olmy)
プログラマー確実養成講座 プログラミング入門書の中では私のイチオシ! ただ、平易な言葉にしただけでなく、観念を分かりやすく噛み砕いて、プログラミングとはどんな作業なの...






これからはじめるプロ...
Myst Online: Ur...


