执行递增和递减时"cout"链接会产生意外结果
"cout" chaining while performing increment and decrement produces unexpected result
以下程序包括简单的递增和递减操作。正如我的预测,程序应该打印"0 1 1 1",但它打印的是"1 0 2 0",但为什么呢?
#include<iostream>
using namespace std;
int main(void)
{
int i=0;
cout<<i++<<" "<<i++<<" "<<--i<<" "<<i++;//this will print "1 0 2 0"
}
。但是如果我不像这样链接输出命令,它可以正常工作,
cout<<i++<<endl;
cout<<i++<<endl;
cout<<--i<<endl;
cout<<i++<<endl;
即使它们应该以相同的方式工作,但它们会产生不同的结果。但是为什么?
发布和预递增,当你使用时i++
它在你运行时在线路之后运行++i
它在执行线路之前添加,所以当你这样做时--i
它会在线路运行之前从i
中减去i++
调用。
尝试将它们全部设为i++
和i--
或--i
和++i
,这样结果就不会因它们是否在同一行上而有所不同。
相关文章:
- 尝试将字符串/字符转换为整数会产生意外结果
- RapidXML - 代码创建意外结果
- 类中静态函数C++意外结果
- 指针数组中的意外结果
- 使用指针访问数组元素时出现意外结果
- 使用 sprintf 和 %g 将双精度转换为字符串的意外结果
- C++:比较运算符>和字符串文本的意外结果
- 具有意外结果的 C++ 闭包
- yaml-cpp 比较的意外结果
- 每次都出现意外结果
- 在 Qt 中解析嵌套的 JSON 时出现意外结果(数组不存在)
- 如何避免 std::abs 的意外结果?
- 使用嵌套 if 语句的意外结果
- A ^= B ^= A ^= B;C# Visual Studio 中的意外结果
- 逻辑错误,我将获得意外结果
- 在 c++ 中使用异步的意外结果
- 从函数的返回值将元素C++存储到 std::vector 中时出现意外结果
- 执行递增和递减时"cout"链接会产生意外结果
- OpenCL - 内核方法返回意外结果
- C++使用 std::get_time 解析 YYMMDD ISO 8601 日期字符串会得到意外结果