【C++】自加、自减(补充)

//
//  main.cpp
//  【记录】自加、自减(补充)
//
//  Created by T.P on 2018/3/7.
//  Copyright © 2018年 T.P. All rights reserved.
//

#include <iostream>
using namespace std;

int main()
{
    int val=5;
    cout<<"val="<<val<<endl;
    cout<<val++<<","<<++val<<","<<val--<<","<<--val<<endl;
    cout<<"val="<<val<<endl;
    return 0;
}

这段代码,按照我们的理解它应该输出

val=5
5,7,7,5
val=5

实际上它的输出根据“编译器”的不同,结果可能不同

下面笔者就VS2017和Xcode运行这段代码进行了验证

VS2017


Xcode





小结:待填坑

C++程序设计(第4版),郑莉,课件解释

最后一句的输出结果4,5,4,5,这是为什么呢?
我们期望的输出结果,似乎应该是:5, 7, 7, 5。
这是运行顺序问题,按照从右向左的顺序计算各输出项的值,
然后按照从左向右的顺序进行输出。
因此,在本例中,首先计算的是--val1,
而不是val1++。于是出现了最后的输出结果。
原文地址:https://www.cnblogs.com/tp0829/p/8536692.html