Mais um alerta sobre tipos, em C/C++

Olhem só esse pequeno código, abaixo:

#include <stdio.h>

int main(void)
{
  int a = 2;
  float b = 2.5f;

  printf("a: %d %f %d \n", a, a, a);
  printf("b: %d %f %d \n", b, b, b);

  return 0;
}

Agora, observem o resultado:

a: 2 0.000000 134513456
b: 0 0.000000 1074003968

Ué?! Por que printf está imprimindo valores errados?! Não deveria ser:

a: 2 2.000000 2
b: 2 2.500000 2

Claro que NÃO… E a resposta é bem simples… Think about it!

Anúncios

Deixe um comentário

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s