2
がたろう TTLでCPUを作る爺(コンパイラやOSも手作りです) @duo6750
【経験者でも結構間違える問題】intの長さが4byteの環境下で、int a=0; printf("%d",sizeof(++a)+a); はいくつを表示するか?
でぃー @wdko
えーーーと。。。。不定? RT @duo6750: 【経験者でも結構間違える問題】intの長さが4byteの環境下で、int a=0; printf("%d",sizeof(++a)+a); はいくつを表示するか?
でぃー @wdko
陰核先生に聞いてみよう
でぃー @wdko
@bolero_MURAKAMI いんかくせんせーこれどうなるのー? RT @duo6750: 【経験者でも結構間違える問題】intの長さが4byteの環境下で、int a=0; printf("%d",sizeof(++a)+a); はいくつを表示するか?
対鉱物用武装 @kikairoya
sizeof(size_t)とendianessによって答えが変わってくるが
でぃー @wdko
で結局例のあれ、 sizeof(a++) + a なんだけど副作用完了点前に 一度式のなかで変更された変数が再度どこかで参照されてるので結果は不定なんじゃなかったかなぁ
にゃにゃし候補生 @nyanyashi
副作用完了点の問題で不定かと。 > int a=0; printf("%d",sizeof(++a)+a); はいくつを表示するか?
でぃー @wdko
intの長さが4byteの環境下でってのは引っ掛けだったか
pepshiso @pepshiso
@nyanyashi sizeof の中に入ってるとインクリメントされません
pepshiso @pepshiso
@_w_dee sizeof の中身は unevaluated です
でぃー @wdko
それか!!!!!!! RT @pepshiso: @_w_dee sizeof の中身は unevaluated です
pepshiso @pepshiso
@nyanyashi @_w_dee あと、 printf の第二引数の型が size_t で第一引数が "%d" なのであぶないはず
でぃー @wdko
@pepshiso ああ、それはsize_tがintと違うばあいはやばいですね。 naruhodo
でぃー @wdko
まあどっちみち解答は「処理系依存」か。不定や未定義ではないってことかな
でぃー @wdko
sizeofがsize_tを返すのってC++であってCはintじゃなかったっけ???あーもうどうでもいい
でぃー @wdko
sizeofの中身は評価されないのはわかったけど sizeofが副作用完了点ではないんだよな。副作用がそもそもおきないからどうでもいいのかな?ど0うにしろそういう危ないコードは書くなってことですね
狂える中3女子ボレロ村上/陶芸C++er @bolero_MURAKAMI
出力は 4. sizeof(++a) は作用を持たないので 4+0 になる。 RT duo6750: 【経験者でも結構間違える問題】intの長さが4byteの環境下で、int a=0; printf("%d",sizeof(++a)+a); はいくつを表示するか?
狂える中3女子ボレロ村上/陶芸C++er @bolero_MURAKAMI
@kikairoya この問題の場合だとsize_tのサイズは関係無いのでは??
相沢陽菜 @fetus_hina
かしわださんは「型が不一致だから何表示されるかわからん」といってる?
残りを読む(41)

コメント

室町幕府十代将軍 @oskimura 2012年4月11日
これ結局問題の答えは処理系依存でいいのでしょうか?
ログインして広告を非表示にする
ログインして広告を非表示にする