Bases de la programmation en C
char s[10] = "hello";
printf("%zu %zu\n", strlen(s), sizeof s);Quelle est la sortie obtenue en exécutant le code ci-dessus, qui porte sur un tableau de char contenant une chaîne ?
- A5 10
- B6 10
- C10 10
Afficher la réponse et l'explication
Réponse : A. 5 10
En C, une chaîne est une suite de caractères suivie du caractère de fin '\0'. strlen compte les caractères depuis le début jusqu'au '\0' exclu : il donne 5 pour "hello". sizeof s est la taille du tableau s tout entier, soit les 10 octets déclarés (les éléments restants contiennent 0). Si l'on omet le nombre d'éléments, comme dans char s[] = "hello";, on obtient un tableau de 6 octets, '\0' compris.
Continuer : 9 autres questions sur Bases de la programmation en C