Enunciado
Programação - Deitel &Deitel - Como programar em C- Ed: 6º - Capítulo 10.Exercícios de autorrevisão - Ex. 4
Encontre o erro em cada um dos itens a seguir:
a) Suponha que struct card tenha sido definida para que contenha dois ponteiros para o tipo
char, a saber, face e suit. Além disso, a variável c foi definida para ser do tipo struct card e a
variável cPtr foi definida para ser do tipo ponteiro para struct card. A variável cPtr recebeu o endereço de c. printf( “%s\n”, *cPtr->face );
b) Suponha que struct card tenha sido definida para que contenha dois ponteiros para o tipo char, a saber, face e suit. Além disso, o array hearts[ 13 ] foi definido para ser do tipo struct card. A instrução a seguir deverá imprimir o membro face do elemento do array 10. printf( “%s\n”, copas.face );
c) union valores { char w; float x; double y; }; union valores v = { 1.27 };
d) struct pessoa { char nome[ 15 ]; char sobrenome[ 15 ]; int idade; }
e) Suponha que struct pessoa tenha sido definido como na parte (d), mas com a correção apropriada. pessoa d;
f) Suponha que a variável p tenha sido declarada como tipo struct pessoa, e a variável c tenha sido declarada como tipo struct card. p = c;
Passo 1
E aí meus queridos!! Tudo bem com vocês??
Hoje vamos ver alguns erros que costumam nos confundir na hora de programar!! Estão preparadas crianças?
Passo 2
- É preciso delimitar o ponteiro com parênteses, fazendo com que a ordem de avaliação da expressão seja correta. Nesse caso, a expressão deveria ser: (*cPtr)-> face.
- Não devemos omitir o subscrito do array. Assim devemos manter a prática da programação como: copas[10].face.
- Uniões só podem ser inicializadas com um valor que tenho o mesmo tipo do primeiro membro da união.
- É sempre importante lembrar que o famoso ponto e vírgula (;) é necessário para finalizar uma definição da estrutura.
- A palavra-chave struct foi omitida da declaração. Isso impede que o programa entenda o que queremos de fato. Nesse caso precisamos declarar da seguinte maneira:
- Variáveis de diferentes tipos da estrutura não podem ser atribuídas umas às outras.
Passo 3
Metade já foi.... Vamos continuar entendendo um pouco sobre:
struct pessoa d;
Ufaa!! Finalmente finalizamos!!
Dê Ctrl+n no seu compilador e bora para o próximo exercício!!
Resposta
Ei, a resposta está no passo a passo :)