为什么这是不可能的?
int c = 0;
++c++;
或者在 PHP 中:
$c = 0;
++$c++;
我希望它将变量 c 增加 2,或者可能会做一些奇怪的事情,但是它在编译时会出错。我试图想出一个理由,但实际上一无所获……我的理由是:
- 编译器读取 ++
- 它读取变量
- 它会做任何事情来使变量的值递增,然后在执行应用程序时返回
- 它遇到另一个++
- 它使用前一个变量以便在增加值之前返回它
- 这就是令人困惑的地方:它是使用变量 c,还是尝试读取 (++c) 返回的值?或者,由于您只能执行 varname++(而不是 2++),它是否将 (++c) 视为指针,然后尝试读取该内存位置?不管它做什么,为什么它会给出一个编译错误?或者是错误预防,因为编译器的程序员知道它不会做任何有用的事情?
我并不是真的想使用它,当然也不是用于非一次性使用的代码,但我只是好奇。