Arrays en pointers Flashcards
Hoe duiden wij de eerst en laatste element van het array rij[72] aan?
Het eerste element van het array is rij[0], het laatste element is rij[71].
Welke uitwerking heeft de specificatie van een arraynaam zonder index?
De specificatie van het arraynaam zonder index plaatst een impliciete pointer op het startadres van het array , dus op het eerste element.
Waarom moet een array van het type char een element meer hebben dan het maximum aantal tekens van een string?
Het einde van een tekenreeks wordt in C door de tekenreeks ‘\0’ weergegeven. Deze tekens moeten ook in het array worden opgenomen.
Waarom wordt bij het inlezen van een tekenreeks met scanf( ) geen adresoperator (&) gespecificeerd? Wanneer mag het wel?
Een tekenreeks wordt meestal met een impliciete pointer (arraynaam) naar het eerste element van het array ingelezen. Deze pointer staat reeds op het beginadres. Dus bij char string[100] is dat string. U mag (moet!) wel het & teken gebruiken bij bijvoorbeeld &string[0] of &string[50].
Noem vier functies uit de bibliotheek string.h en leg kort hun werking uit.
strcat( )
strcpy( )
srtcmp( )
srtlen( )
Declareer een tweedimensionaal array van het type int met 18 rijen en 22 kolommen.
int naam [18] [22]
Hoeveel kilobyte geheugenplaats heeft aan array van het type long int met de dimensies [10] [100] [10000] nodig?
Zo’n array heeft 39 062,5 kbytes (40 000 000 bytes) nodig.
Wat is het resultaat van het volgende programmeerfragment?
char hallo;
scanf(“%s%c”, hallo);
Het resultaat is niet voorspelbaar. De pointer hallo staat op een ongedefinieerde geheugenplaats. Precies op deze geheugenplaats slaat scanf( ) de ingelezen informatie op en overschrijft daarbij onder bepaalde omstandigheden belangrijke gegevens of u krijgt een runtime error.