【发布时间】:2020-12-27 16:49:00
【问题描述】:
我正在解决一些考试题,我遇到了这道题,我就是不明白。
int main()
{
int a[3+2] = {1, 2, 3}, i;
for(i = 0; a[i++]++;)
printf("%d", a[i]);
return 0;
}
为什么这个代码的输出是 2 3 0?我尝试了几种思维方式,但无法理解。
【问题讨论】:
-
这是写得很糟糕的代码。问问它是如何工作的很好,只要确保你从来没有写过这样的代码。程序员的职责之一是不要编写不必要的聪明或可能让下一个阅读它的程序员感到困惑的代码。