Odwoływanie do pól struktury

0

Witam,
Mam takie pytanko:
jest np taka struktura

typedef struct{
char autor[50];
char tytul[50];

}rozglosnia;

rozglosnia tab[10];

kiedy odwołuję się do pól tak?

tab.autor;

a kiedy odwołuję się tak?

tab->autor;

jakie są różnice. mogliście by pomóc?

2

1 sposób jak masz zadeklarowaną "normalnie", drugi jak jest jako wskaźnik

2

Ten zapis:

tab->autor;

jest równoznaczny z tym:

(*tab).autor;

Co oznacza że odwołujesz się do tego na co wskazuje wskaźnik a następnie pobierasz interesujące Cię pole.

0

Czyli o to chodzi?

void funkcja(rozglosnia *zmienna){
zmienna->autor="Jan";
}
void funkcja(rozglosnia zmienna){
zmienna.autor="Jan";
}
0

Tak

0

a jeśli jest tak, że parametrem funkcji jest tablica strukturalna, to robię tak?

void funkcja(rozglosnia tab[]){
tab[1]->autor="Jan";

}

bo to chyba tablica sama w sobie jest wskaźnikiem

0

Zasada jest ta sama – dla tablicy struktur ., a dla tablicy pointerów na struktury -> lub (*)..

kamilm758 napisał(a):

bo to chyba tablica sama w sobie jest wskaźnikiem

Nie zgaduj – RTFM. ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1