07. maj 2004 - 20:43Der er
10 kommentarer og 1 løsning
Kode ang. pointere jeg ikke forstår
Hejsa. Jeg fandt følgende kodestump i MFC: --- UINT AFXAPI HashKey(LPCWSTR key) // Unicode strings { UINT nHash = 0; while (*key) nHash = (nHash<<5) + nHash + *key++; return nHash; } ---
Nogen der kan fortælle mig hvad *key++ gør? Mit bud ville være at at den lægger 1 til det første element i arrayet key, men det burde da ikke være muligt når key er const.
Og nu jeg er i gang, hvorfor lægger de så nHash til, når den er 0?
Danmark vil mindske afhængigheden af globale techgiganter, men det kræver mere end politiske formuleringer og strategier, understreger PROSA’s formand Niels Bertelsen.
1) Det er kun første gang nHash er 0 2) *key er tallet, som pointeren peger på 3) *key++ eller med de implicitte paranteser (*key)++ aflæser tallet som pointeren peger på, og tæller derefter pointeren op til at pege på næste element/tal
erikjacobsen, vil du ikke mene, at paranteserne skal placeres sådan her: *(key++) ? For hvis du siger (*key)++, så ændrer du jo i det pointeren peger på, og det kan man ikke med en const pointer.
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.