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 ??
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".
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.
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.
Tack för din förklaring och bra hemsida!