Ir ao conteúdo

Jardelt

Membro Júnior
  • Posts

    2
  • Cadastrado em

  • Última visita

Reputação

0
  1. Muito obrigado! A otimização eu sei que ocorre, mas não entendo porque em x=x-1 ele fica 9 e em x=x-- ele fica 10. Em ambos ele recebe o valor de x e decrementa, mas os resultados são diferentes. Por que? adicionado 8 minutos depois Muito obrigado pela sua resposta. Mas não consegui entender porque na terceira expressão o valor de x=10 é executado se na linha anterior o valor deste foi modificado para 9. Ele está fazendo x=10 duas vezes, quando eu só pedi para ele fazer 1 vez. Então para mim ficou sem sentido. Passo a passo: Primeiro: x-- retorna o valor de 10. Beleza faz sentido, afinal ele vai diminuir logo tem que saber quanto vale x. Segundo: x-- irá decrementar o valor ficando 9. Ok Terceiro: mesmo tendo dado 9 na expressão anterior o compilador faz x=x, ao invés da expressão x=9. Seria isso? Então ele está usando x posterior da expressão da direita duas vezes, uma vez na primeira operação e outra vez aqui. Então isso não seria um erro afinal o x só aparece 1 vez sendo considerado duas vezes? adicionado 12 minutos depois Mas se o valor de X é 9, porque ele recebe 10? E porque a variável é lida duas vezes. Então o compilador utilizar o x para fazer x-- e utiliza o mesmo x para x=x ao invés de x=x-1? Para mim, o x ia receber o valor de 10, ficando x=--. Não entendi porque a variável é lida duas vezes? O x não está a esquerda, então não seria: x=x--, não seria a mesma coisa que: x=10, x=x-1?
  2. Boa tarde! Minha dúvida é em relação a o seguinte programa:int main() { int x=10,; x=x--; printf ("%d", x); }  Eu sei sobre operador pós-fixado e sei que quando faço x=x--, inicialmente o valor de X será x e não x-1. Minha dúvida é a seguinte: ao terminar o comando x-- , o valor de X deveria ter seu valor reduzido para x-1, mas quando peço para exibir o valor de x, ele NÃO é x-1 e sim X, logo o compilador entende x ao invés de x--. Por que isso ocorre? //programa original int main() { int x=10,; x=x--; printf ("%d", x); }  //como o compilador entende: int main() { int x=10,; x=x; printf ("%d", x); }  Porque ele simplesmente ignora o --?????

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

LANÇAMENTO!

eletronica2025-popup.jpg


CLIQUE AQUI E BAIXE AGORA MESMO!