Почему возвращаемое значение функции удовольствия 8 вместо 7? [Дубликат]

Со ссылкой на Разделенные запятыми возвращаемые аргументы в функции C [duplicate] ,

x=x+2,x+1;

будет оцениваться как

x=x+2; 

Однако, в случае следующего кода

#include<stdlib.h>
#include<stdio.h>

int fun(int x)
{
    return (x=x+2,x+1); //[A]
}

int main()
{
   int x=5;
   x=fun(x);
   printf("%d",x); // Output is 8
}

Не следует указывать строку [A], оценивать как

x=x+2;

дает x = 7

33
задан John Kugelman 16 September 2019 в 02:04
поделиться