码迷,mamicode.com
首页 > 编程语言 > 详细

【C++】{记录}自加、自减(补充)

时间:2018-03-10 00:20:30      阅读:208      评论:0      收藏:0      [点我收藏+]

标签:section   根据   ios   val   问题   stream   code   ace   输出   

//
//  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++。于是出现了最后的输出结果。

【C++】{记录}自加、自减(补充)

标签:section   根据   ios   val   问题   stream   code   ace   输出   

原文地址:https://www.cnblogs.com/tp0829/p/8536692.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!