「C/C++」の検索結果 - mad日記
↑見てて思ったんだけど、
int i = 7; printf("%d", i++ * i++);
が49になるのはどうして。
インクリメントってその変数に1を足すんじゃなかったっけ。
なので
int i = 7; printf("%d", i++ * i++);
は8×8で
64
がでるんじゃないの?って思ってやってみた。
#include <stdio.h> int main (void) { int i = 7; printf("%d",i++ * i++); return 0; }
49
がでた。あれ。俺がちがってたのかな。
#include <stdio.h> int main (void) { int i = 7; printf("%d",i++); return 0; }
7
がでた。やっぱりインクリメントに対する認識間違ってる?と思いjsでやってみた。
var i = 7;
i++*i++;
56
おや。なぜ56?
var i = 7;
i++;
7
やっぱり1が足されてないぞ。
ってか56ってどっからでてきた(笑
7×8になってるじゃん。
ってことはやっぱり1足してるよな。。。
おやおやおや><
phpも
<?php $i = 7; print($i++ * $i++); ?>
56がでる。
っとここまできたところで理由が分かった!
i++
は変数の値を表示した後に1を足すんだってさ!
#include <stdio.h> int main (void) { int i = 7; printf("%d",i++); printf("%d",i); return 0; }
7ときて次に8がでた。
なるほどなるほど。
var i = 7;
alert(i++);
alert(i);
も同じように
7ときて次に8がでた。
だから56がでたのか。
あれ、でもそれなら
#include <stdio.h> int main (void) { int i = 7; printf("%d",i++ * i++); return 0; }
も56がでなきゃおかしいぞ。
なぜだ><
ついでにpythonも。。。ってインクリメントできないんだ。
↓見つけた!
初級C言語Q&A(7)
奥が深いということがわかった。