4 svar
71 visningar
I am Me behöver inte mer hjälp
I am Me 711
Postad: 15 okt 2022 13:57

Ska man läsa från höger till vänster eller tvärtom?

Har tre frågor angående fält:

Hur läser man int *p= res; ??

Jag brukade läsa från höger till vänster alltså res tilldelas pekaren p och för att res är ensam så betyder det att res[0] tilldelas pekaren p. Men läraren sa pekaren p tilldels res. 

Frpga2; vad menas med indexera sig relativt  en pekaren?

Fråga3: varför p har adressen 300 ?? 

Fermatrix 7841 – Fd. Medlem
Postad: 15 okt 2022 14:12

Adressen 300 är godtycklig, det kunde likaväl kunnat vara 293 eller 50. Det är bara för att illustrera hur pekaren p allokeras i stacken.

I en annan av dina trådar hintade jag till hur en pekare är samma sak som en array i C. Du behöver inte skriva exempelvis:

int res[5];

Du hade kunnat göra detta till en int pekare (int*) iställlet. Som du ser nedan så kan man sätta olika index för en pekare precis som om det är en array (det är för de i princip är exakt samma sak). Jag läser från vänster till höger.

int* p = res

Läser jag som "p är en int pekare som tilldelas res." Eller kanske "En int pekare som kallas p tilldelas värdet res", du kan också gå baklänges "res tilldelas till p som är en int pekare".

I am Me 711
Postad: 15 okt 2022 14:48

Sp du menar att int res[5]; och int* p =res är samma sak. Den första deklarationen använder vi fältet och indexeringen för att gå igenom alla element i fältet men i den andra delklarationen använder vi pekaren för att gå igenom alla element i fältet? Men även om man skriver pekare istället för array så använder man ändå indexering. 

Fermatrix 7841 – Fd. Medlem
Postad: 15 okt 2022 18:01

De är inte exakt samma, men i princip så använder du de på samma vis.

Kika gärna här: https://www.programiz.com/c-programming/c-pointers-arrays#:~:text=In%20simple%20words%2C%20array%20names,don't%20decay%20to%20pointers.

Pekare är förvirrande i början men det kommer bli tydligare senare.

I am Me 711
Postad: 16 okt 2022 07:14

Tack för din förklaring och bra hemsida!

Svara
Close