Wat is Pointer?
Een variabele waarvan de waarde het geheugenadres is van een variabele, een array-element, een functie of een ander object. In C wordt een pointer gedeclareerd zoals in int *p; &x levert het adres van x op, en *p leest of schrijft het object waarnaar p wijst. Als een geheel getal bij een pointer wordt opgeteld, schuift die op in eenheden van de grootte van het type waarnaar hij wijst. In de meeste expressies wordt de naam van een array omgezet in een pointer naar het eerste element, zodat a[i] hetzelfde betekent als *(a + i). Een pointerwaarde die nergens naar wijst, heet een NULL-pointer.
Japanse benaming: ポインタ
“Pointer” komt voor in 23 oefenvragen uit 7 onderwerpen, bijv. Basis van programmeren in C, Datastructuren en algoritmen, Instructieset en assembly.
Vakgebied: Basis van programmeren in C
Veelgestelde vragen
Hoe groot is een pointer?
In veel 64-bits omgevingen is een pointer 8 bytes, en op 32-bits microcontrollers 4 bytes. Datapointers hebben in het algemeen dezelfde grootte, of ze nu naar char of naar double wijzen. Een pointer is niet noodzakelijk even groot als een int, dus als een adres in een geheel getal moet worden opgeslagen, wordt uintptr_t uit stdint.h gebruikt.
Wat is het verschil tussen const char *p en char *const p?
const char *p is een „pointer naar const char”: de tekens kunnen niet via p worden gewijzigd, maar p zelf kan naar een ander adres worden gezet. char *const p is een „const pointer”: p kan niet worden veranderd, maar waarnaar hij wijst, kan wel worden gewijzigd. Lees het zo: const links van * legt vast waarnaar wordt gewezen, en const rechts van * legt de pointer zelf vast.