Basis van programmeren in C

char s[10] = "hello";
printf("%zu %zu\n", strlen(s), sizeof s);

Wat is de uitvoer als de bovenstaande code met een char-array die een string bevat, wordt uitgevoerd?

  1. A5 10
  2. B6 10
  3. C10 10
Antwoord en toelichting tonen

Antwoord: A. 5 10

Een string in C is een reeks tekens, gevolgd door het afsluitende teken '\0'. strlen telt de tekens vanaf het begin tot vlak voor '\0', dus geeft 5 voor "hello". sizeof s is de grootte van de hele array s, de gedeclareerde 10 bytes (de overige elementen bevatten 0). Als het aantal elementen wordt weggelaten, zoals in char s[] = "hello";, ontstaat een array van 6 bytes inclusief '\0'.

Dit onderwerp oefenen Naar de onderwerppagina

Meer vragen over Basis van programmeren in C

  1. Na de bovenstaande declaraties wordt een van de statements A „p = t;”, B „*p = 'x';”, C „q = t;” of D „*q = 'x';” geschreven. Welke combinatie geeft compileerfouten?
  2. Wat is de uitvoer als het bovenstaande programma, dat een array van functiepointers gebruikt, wordt uitgevoerd?
  3. fill en use zijn elders gedefinieerde functies. Wat is een probleem van de bovenstaande functie?
  4. Wat is juist over de pointer die de bovenstaande functie make teruggeeft?
  5. Wat is in C de meest passende reden waarom wordt aangeraden om direct na free(p); de regel p = NULL; te schrijven?