6 svar
555 visningar
segway behöver inte mer hjälp
segway 33 – Fd. Medlem
Postad: 24 okt 2018 11:32

Förklaring av pekare och funktioner

Hej, 

är väldigt ny till programmering och skulle vilja få lite hjälp att bena ut begreppet pekare. Just nu är det rätt obegripligt. 

T.ex ovanstående kod sorterar ut det största talet i en array. int *m är som en pekare och pekar på minnesadressen (enligt koden) i arrayelementet a[0]. Är det rätt?

Därefter hittar vi det största värdet i arrayen genom en for-loop. Sedan anropar vi det största värdet i arrayen i vår max-funktion som ligger i main:et med &largest. Ifall det stämmer, är då *m = &largest? 

Tacksam för hjälp!

Affe Jkpg 6630
Postad: 24 okt 2018 12:50

Jag kan väl tycka att det är snyggare att skriva:

int main(void)

{

...osv.

max (8, &a[0], &largest);

...osv.

}

void max(int n, int *array, int *larg)

{

*larg = *array;

..osv.

return(void);

}

Affe Jkpg 6630
Postad: 24 okt 2018 12:59

 int *m är en pekare i funktionen max(). *m pekar vid funktionsanropet på minnesadressen till variabeln largest.

Nä, men m = &largest (adressen till largest) och *m (variabeln largest) får värdet 78 efter funktionsanropet till max()

Laguna Online 30473
Postad: 24 okt 2018 13:01

Fungerar "return(void)"?

Affe Jkpg 6630
Postad: 24 okt 2018 14:11
Laguna skrev:

Fungerar "return(void)"?

 Tveksamt...return()...eller har du något förslag?

Laguna Online 30473
Postad: 24 okt 2018 14:18

Kan du C? Bara "return" kan man skriva, men sist i funktionen behövs det inte. 

segway 33 – Fd. Medlem
Postad: 24 okt 2018 15:35

Tack, blev tydligare nu!

Svara
Close