问人们一直在说 i = i++ 的行为i = i++的行为是未定义的,但我刚刚在一个符合 ANSI 标准的编译器上尝试了它,并得到了我预期的结果。
答编译器在遇到未定义行为(以及在一定限度内的依赖实现和未指定行为)时,可以随心所欲,包括做你期望的事情。但依赖它是不明智的。
这是罗杰·米勒的另一种看法:
“有人告诉我,在篮球比赛中你不能持球跑动。我拿起一个篮球试了试,结果很好。他显然不懂篮球。”
另请参阅问题 7.3b、11.32、11.33 和 11.34。
由 托管