6 svar
45 visningar
segway är nöjd med hjälpen!
segway 53
Postad: 24 okt 2018

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 3569
Postad: 24 okt 2018

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 3569
Postad: 24 okt 2018

 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 1734
Postad: 24 okt 2018

Fungerar "return(void)"?

Affe Jkpg 3569
Postad: 24 okt 2018
Laguna skrev:

Fungerar "return(void)"?

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

Laguna 1734
Postad: 24 okt 2018

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

segway 53
Postad: 24 okt 2018

Tack, blev tydligare nu!

Svara Avbryt
Close