Problema com o DEVC++

Re: Problema com o DEVC++

por ARTUR SCAVONE -
Número de respostas: 0
No final da aula nos vimos o que aconteceu. Na realidade eu havia usado a expressão assim:

--------------------------------------------
linha[i] == '|' ? linha[i] = '*': linha[i] = '+';
--------------------------------------------

O problema ocorre porque, em razão da precedência, a expressão é avaliada até

--------------------------------------------
linha[i] == '|' ? linha[i] = '*': linha[i]
--------------------------------------------

e não chega em
--------------------------------------------
= '+';
--------------------------------------------

daí o erro. Se forem colocados parenteses, tudo bem, fica resolvido.

--------------------------------------------
linha[i] == ('|' ? linha[i] = '*') : (linha[i] = '+';)
--------------------------------------------

Mas o mais adequado é escrever da seguinte forma, segundo o prof.:

--------------------------------------------
linha[i] = (linha[i] == '|') ? '*': '+';
--------------------------------------------

Artur