全栈算法王导 2021-11-19 17:55 采纳率: 50%
浏览 32
已结题

j=5,(++j)+(j++)的值为多少?

先看一段代码:


#include<iostream>
using namespace std;

int main()
{
    int i,j;
    i=0;j=5;
    i=(j++)+(j++);
    cout << i << endl;
    
    i=0;j=5;
    i=(j++)+(++j);
    cout << i << endl;
    
    i=0;j=5;
    i=(++j)+(j++);
    cout << i << endl;
    
    i=0;j=5;
    i=(++j)+(++j);
    cout << i << endl;
    return 0;
}

结果分别为11,12,13,14

i=0;j=5;
    i=(++j)+(j++)+(++j);
    cout << i << endl;

这个结果为21
请问其中结果为13和21的是怎么得出来的?

  • 写回答

1条回答 默认 最新

  • ヾ凉秋 2021-11-19 18:38
    关注

    (++j)的时候j等于6,(j++)此时括号里面j等于6,等到第一个表达式(j++)的时候上一个j就等于7最后一个(++j)括号里面的j=7最后还要赋值给j此时又是一个表达式最后一个(++j)中的j就是8,所以是6+7+8=21
    进行j++的时候先赋原值 等到下一个表达式的时候才会增,++j是先增再运算。

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录

报告相同问题?

问题事件

  • 系统已结题 7月7日
  • 已采纳回答 6月29日
  • 创建了问题 11月19日