
paulo1205
(usa Ubuntu)
Enviado em 25/03/2013 - 21:19h
#define MAX 10
struct Tpchave{
int prioridade;
char elem;
};
struct Tpfila{
int fim;
Tpchave fila[MAX];
};
quando existe uma struct em C apenas coloca o nome dela e uma variavel tp assim:
struct Tpfila r;
para acessar a variavel da struct seria assim:
r.fim;
Mas como eu faço para acessar uma struct dentro da outra?
e como faço para acessar a variavel fila
obrigado
Como, no seu exemplo, você tem um array de estruturas dentro da estrurar mais externa, você acederia à prioridade do segundo elemento (lembrando que o primeiro elemento de um array em C tem índice 0) com a seguinte expressão.
r.fila[1].prioridade
Explicação: o dado
r, do tipo
struct Tpfila, tem um campo
fila, que é um array de elementos que são, cada um, do tipo
struct Tpchave, possuindo, portanto, os campos
prioridade, que é um inteiro, e
elem, que é um caráter.
Alguém já disse que se leem expressões em C de trás para frente. É uma bincadeira, mas tem lá o seu sentido: veja que na expressão acima, obtém-se "o valor da
prioridade (parte) que compõe (".") o valor do segundo elemento ("[1]") da
fila (parte) que compõe (".") o valor de
r".