Ik heb een vrij simpele vraag waar hopelijk een vrij simpel antwoord op te geven is.
In het boek dat ik heb over C++ staat dat de naam van een array het geheugenadres is van het 0e element.
In de module die ik van school heb, ook over C++, staat dat wanneer ze over char-arrays beginnen dat de arraynaam een pointer is naar het 0e element.
Nu had ik verwacht dat het bovenstaande stukje code "E" als uitvoer zou geven maar dit is niet het geval. Waarom is de uitvoer "Emmen" en niet "E" zoals ik zelf had verwacht? Heeft dit iets te maken met dat wat je in de char-array stopt een C-string is?
In het boek dat ik heb over C++ staat dat de naam van een array het geheugenadres is van het 0e element.
code:
1
2
| int tientallen[5] = {10, 20, 30, 40, 50};
cout << tientallen << endl; //Uitvoer: geheugenadres |
In de module die ik van school heb, ook over C++, staat dat wanneer ze over char-arrays beginnen dat de arraynaam een pointer is naar het 0e element.
code:
1
2
3
4
5
| char plaats[6] = "Emmen";
char plaats2[6] = {'E','m', 'm', 'e', 'n'};
cout << plaats << endl; //Uitvoer: Emmen
cout << plaats2 << endl; //Uitvoer: Emmen |
Nu had ik verwacht dat het bovenstaande stukje code "E" als uitvoer zou geven maar dit is niet het geval. Waarom is de uitvoer "Emmen" en niet "E" zoals ik zelf had verwacht? Heeft dit iets te maken met dat wat je in de char-array stopt een C-string is?