Sei que ponteiros (*) apontam para um endereço na memória e que o operador (&) retorna esse endereço, mas isso não me ajudou a responder essa pergunta. Por que as vezes quando não uso o "&" o programa segue sem erros e outras vezes preciso usá-lo? Quais os casos em que ele é necessário?
Pergunta
Fantomas
Sei que ponteiros (*) apontam para um endereço na memória e que o operador (&) retorna esse endereço, mas isso não me ajudou a responder essa pergunta. Por que as vezes quando não uso o "&" o programa segue sem erros e outras vezes preciso usá-lo? Quais os casos em que ele é necessário?
Exemplo1:
Deu certo
int h;
printf("Digite um valor: ");
scanf("%d",&h);
printf("%c",h);
Deu Errado
int h;
printf("Digite um valor: ");
scanf("%d",h);
printf("%c",h);
Exemplo2:
Deu certo
char n[20];
printf("Qual a cor da casa?");
scanf("%s",n);
printf("%s",n);
Deu certo
char n[20];
printf("Qual a cor da casa?");
scanf("%s",&n);
printf("%s",n);
Link para o comentário
Compartilhar em outros sites
5 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.