Erro: lvalue necessário neste código C simples? (Ternário com atribuição?)
Eu tenho
#include<stdio.h>
int main()
{
int a=5,b=6;
(a>b)?b=a:b=b; // Here is the error
return 0;
}
Mas se eu substituir:
(a>b)?b=a:b=b; // Error
with
(a>b)?(b=a):(b=b); // No-Error
Eu entendo olvalue
é um valor ao qual algo pode ser atribuído e como é diferente dervalue
, mas por que oextra parenthesis
fazendo a diferença