Existe alguma diferença no funcionamento dos seguintes trechos?

if (x==0) if (x=0)

printf(“X”); printf(“X”);

else else

printf(“Y”); printf(“Y”);

Passo 1

Beleza pessoal, como estão todos? Espero que todos estejam bem e extremamente dispostos a aprender mais um pouco da Linguagem C. Vamos começar a nossa análise sobre o código acima que parece ser bem semelhante um com o outro, mas não igual. Logo de cara vemos que o primeiro condicional tem x == 0 já a condicional do lado tem x = 0. Qual a diferença desses usos da igualdade?

O == significa igualdade, então quando temos X == 0, lemos como X é igual a zero? No caso do X = 0 temos uma atribuição, estamos afirmando que X é igual a 0.

Passo 2

Com toda essa explicação em mente, e completando o programa com int X = 0; o resultado do primeiro programa nos traz impresso no terminal X. Já o segundo programa nos traz Y.

Sendo assim, é muito importante prestar atenção ao uso de operadores relacionais, um simples detalhe pode causar um erro grande no seu resultado.

Por hoje é isso pessoal, abraço e sucesso nos estudos.

Resposta

Ei, a resposta está no passo a passo :)