ABIばくはつし(ry

2
がたろう TTLでCPUを作る爺(コンパイラやOSも手作りです) @duo6750

【経験者でも結構間違える問題】intの長さが4byteの環境下で、int a=0; printf("%d",sizeof(++a)+a); はいくつを表示するか?

2012-04-10 13:32:45
でぃー(Dee) @wdko

えーーーと。。。。不定? RT @duo6750: 【経験者でも結構間違える問題】intの長さが4byteの環境下で、int a=0; printf("%d",sizeof(++a)+a); はいくつを表示するか?

2012-04-10 13:33:32
でぃー(Dee) @wdko

陰核先生に聞いてみよう

2012-04-10 13:35:16
でぃー(Dee) @wdko

@bolero_MURAKAMI いんかくせんせーこれどうなるのー? RT @duo6750: 【経験者でも結構間違える問題】intの長さが4byteの環境下で、int a=0; printf("%d",sizeof(++a)+a); はいくつを表示するか?

2012-04-10 13:35:46
若年寄(もう若くない) @kikairoya

sizeof(size_t)とendianessによって答えが変わってくるが

2012-04-10 13:37:06
でぃー(Dee) @wdko

で結局例のあれ、 sizeof(a++) + a なんだけど副作用完了点前に 一度式のなかで変更された変数が再度どこかで参照されてるので結果は不定なんじゃなかったかなぁ

2012-04-10 14:12:44
にゃにゃし候補生 @nyanyashi

副作用完了点の問題で不定かと。 > int a=0; printf("%d",sizeof(++a)+a); はいくつを表示するか?

2012-04-10 14:19:35
でぃー(Dee) @wdko

intの長さが4byteの環境下でってのは引っ掛けだったか

2012-04-10 14:21:13
pepshiso @pepshiso

@nyanyashi sizeof の中に入ってるとインクリメントされません

2012-04-10 14:31:02
pepshiso @pepshiso

@_w_dee sizeof の中身は unevaluated です

2012-04-10 14:46:21
でぃー(Dee) @wdko

それか!!!!!!! RT @pepshiso: @_w_dee sizeof の中身は unevaluated です

2012-04-10 14:46:46
pepshiso @pepshiso

@nyanyashi @_w_dee あと、 printf の第二引数の型が size_t で第一引数が "%d" なのであぶないはず

2012-04-10 14:50:33
でぃー(Dee) @wdko

@pepshiso ああ、それはsize_tがintと違うばあいはやばいですね。 naruhodo

2012-04-10 14:51:11
でぃー(Dee) @wdko

まあどっちみち解答は「処理系依存」か。不定や未定義ではないってことかな

2012-04-10 14:52:59
でぃー(Dee) @wdko

sizeofがsize_tを返すのってC++であってCはintじゃなかったっけ???あーもうどうでもいい

2012-04-10 14:53:32
でぃー(Dee) @wdko

sizeofの中身は評価されないのはわかったけど sizeofが副作用完了点ではないんだよな。副作用がそもそもおきないからどうでもいいのかな?ど0うにしろそういう危ないコードは書くなってことですね

2012-04-10 14:56:32
狂える中3女子ボレロ村上/陶芸C++er @bolero_MURAKAMI

出力は 4. sizeof(++a) は作用を持たないので 4+0 になる。 RT duo6750: 【経験者でも結構間違える問題】intの長さが4byteの環境下で、int a=0; printf("%d",sizeof(++a)+a); はいくつを表示するか?

2012-04-10 15:03:16
狂える中3女子ボレロ村上/陶芸C++er @bolero_MURAKAMI

@kikairoya この問題の場合だとsize_tのサイズは関係無いのでは??

2012-04-10 15:07:48
相沢陽菜 @fetus_hina

かしわださんは「型が不一致だから何表示されるかわからん」といってる?

2012-04-10 15:07:53