我对输出感到困惑

问题描述 投票:-1回答:2
#include <stdio.h>
#include <stdlib.h>

int main()
{
  int a , b ,c ;
  printf("Enter values for a and b: ");
  scanf("%d%d",&a,&b);

    a = a + b-- ;

  if (a<b){
    c = -1;
  printf("\n\t%d %d %d\n\n",a,b,c);
          }
  else {
    c = 0;
    printf("\n\t%d %d %d\n\n",a,b,c);
       }
}

让我们假设a和b的输入值为2(对于两者)。我研究了上面的程序,但是当涉及到输出时,它将是4 1 0,a = 4,b = 1,c = 0。但是,上面的计算部分说a = a + b-1将是a的值是3,现在a的新值是3。但是对于b来说值仍然是2,因为我们没有分配新的有价值。

我对输出非常困惑。

c input output
2个回答
2
投票

a+1a++++a之间存在差异。详细信息here。因此,当你说

a = a + b--;

您实际上是在说


1
投票

一开始,a和b均为2

然后,执行a = a + b--;

© www.soinside.com 2019 - 2024. All rights reserved.