Olá Giliandro.
Está tudo correto sim.
A unica alteração que eu faria seria no printf, porque por mais que funcione, Eu acredito que fica mais claro quando você coloca a própria variável (r.nome), invés do endereço &(r.nome).
Antes:
printf("O nome digitado foi %s e telefone foi %s \n", &(r.nome), &(r.telefone) );
Depois:
printf("O nome digitado foi %s e telefone foi %s \n", r.nome, r.telefone) );
Mas que fique claro que da maneira que está, já está correto.
Como podemos ver na documentação na parte de ... (additional arguments),que diz que quando colocarmos %s, é aceito como parâmetro o endereço de memoria.
Mas se tivermos usando int por exemplo teríamos 'problemas' .
#include <stdio.h>
#include <stdlib.h>
struct registro{
char* nome [20];
char* telefone [10];
int numero;
};
struct registro r;
int main (){
printf("Digite o nome:\n");
scanf ( " %s", &(r.nome));
printf("Digite o telefone:\n");
scanf (" %s", &(r.telefone) );
printf("Digite um numero:\n");
scanf (" %d", &(r.numero) );
printf("O nome digitado foi %s e telefone foi %s e o numero foi %d \n", &(r.nome), &(r.telefone), &(r.numero));
}
Inclui uma terceira variável que vai receber um inteiro.
igornascimentoflipe@penguin:~/Documents/fórum alura/topico-Correcao-108887$ gcc main.c -o exec
igornascimentoflipe@penguin:~/Documents/fórum alura/topico-Correcao-108887$ ./exec
Digite o nome:
igor
Digite o telefone:
49300724
Digite um numero:
25
O nome digitado foi igor e telefone foi 49300724 e o numero foi -2060648112
igornascimentoflipe@penguin:~/Documents/fórum alura/topico-Correcao-108887$
Veja que usando &(r.numero) o que foi impresso foi o endereço de memoria, e não o numero. Isso aconteceu porque o %s e o %d esperam coisas diferentes.
Apenas o %s aceita ponteiros como parâmetro e funciona 'corretamente', já o %d quer receber a variável.
printf("O nome digitado foi %s e telefone foi %s e o numero foi %d \n", &(r.nome), &(r.telefone), r.numero);
Retirando o & corrigimos o resultado.
igornascimentoflipe@penguin:~/Documents/fórum alura/topico-Correcao-108887$ gcc main.c -o exec
igornascimentoflipe@penguin:~/Documents/fórum alura/topico-Correcao-108887$ ./exec
Digite o nome:
Igor
Digite o telefone:
49300724
Digite um numero:
25
O nome digitado foi Igor e telefone foi 49300724 e o numero foi 25
igornascimentoflipe@penguin:~/Documents/fórum alura/topico-Correcao-108887$
Espero ter te ajudado, qualquer duvida não hesite em perguntar.
Bons Estudos.