3ddie
Belegen kaas
- Lid sinds
- 5 april 2019
- Berichten
- 1.058
Nou, ik denk waar ProgHead een beetje mee zat is dat een 'adres' ook gewoon een integer is. Afhankelijk van je processor (of 'modus' van de processor) is dat 32-bits of 64 bits maar in principe is een geheugen adres iets dat opsombaar is. Het begint bij adres 0 en gaat tot je fysieke geheugenomvang.@3ddie dan is mijn declaratie uitleg niet korrekt.
of half korrekt...
ik snap dat de syntax priegelen om de vierkante millimeter soms is, in C en C++.....
( er is ook nog iets zoals int* p;
maar dat ben ik weer vergeten, het verschil)
Dus theoretisch zou je kunnen afspreken dat je zoiets zou kunnen doen:
Code:
char c = 'a';
int adres = &a;
cout << *adres << '\n';
Maar nu moet of de compiler, of de runtime (dynamic typing) weten naar wat voor ding dat 'adres' nu wijst. Is het een char? Is het een int? Is het een struct?
En daarom wordt een pointer gedeclareerd als 'een pointer naar een bepaald type'. En we hebben notatie voor het declareren van een getypeerde variabele:
Code:
int a;
en dus moeten we ook syntax hebben voor het declareren van een pointer naar een getypeerd stuk geheugen:
Code:
int *p; // het * hier geeft aan dat we een pointer naar een int type willen hebben
... ik zou dat niet kunnen. Tenminste niet als het voor de hobby is en je echt substantieel moet programmeren. Voor iets "kleins" wat regels code schrijven in een taal die je niet ligt is nog tot daaraan toe, maar een wat grotere applicatie bouwen, zou dan snel op zoek gaan naar iets anders en als dat niet kan, het idee in een andere vorm gieten (ander platform, andere hardware, etc.) om het op die manier te realiseren.