int ASCI1 = 1;
for (int i = 1; i < 8; i++)
{
cout << ASCI1 << endl << ASCI1++;
}
我得到输出:
2
13
24
35
46
57
68
7
(由于某种原因这里没有结束行)。
这个想法是为了得到
1
2
3
4
etc.
完全被难住了,请帮忙!
最佳答案
<<
运算符在 C++ 中未定义为序列点,因此可以按任何顺序计算 ASCI1
和 ASCI1++
。
如果您尝试通过未排序的评估对对象执行读取和写入操作,那么您将有未定义的行为,因此您会看到垃圾输出。
最后,您没有在末尾看到换行符 1) 因为您很幸运,并且 2) 因为即使您的循环按照您的计划执行,您仍然在执行写入而没有跟进另一个 endl
关于c++ - 为什么这个循环运行不可见代码?并且没有按顺序工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37710398/