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 :)