web-dev-qa-db-fra.com

Initialisation du tableau de caractères avec le premier élément nul

J'ai récemment été confronté à une ligne de code et quatre options:

char fullName[30] = {NULL};
  1. A) Le premier élément reçoit un caractère NULL.

  2. B) Chaque élément du tableau est attribué à 0 (zéros)

  3. C) Chaque élément du tableau est affecté NULL

  4. D) Le tableau est vide.

La réponse que nous avons choisie était l'option C, car, alors que le tableau n'est initialisé qu'avec un seul NULL, C++ remplit le reste du tableau avec NULL.

Cependant, notre professeur n'était pas d'accord, déclarant que la réponse était A, il a dit:

Ainsi, le tout premier élément est NULL, et lorsque vous l'affichez, il affiche le premier élément, qui est NULL.

La citation montre la question dans son intégralité; aucune autre information n'a été fournie. Je suis curieux de savoir laquelle est correcte et si quelqu'un pourrait expliquer pourquoi cette réponse serait correcte.

41
Jay B

Apparemment, votre professeur a raison, voyons comment

char someName [6] = "SAAD";

comment le nom de la chaîne est représenté en mémoire:

0 1 2 3 4 5

S A A D

Chaîne C basée sur un tableau

Les caractères individuels qui composent la chaîne sont stockés dans les éléments du tableau. La chaîne se termine par un caractère nul. Les éléments de tableau après le caractère nul ne font pas partie de la chaîne et leur contenu n'est pas pertinent.

Une "chaîne nulle" est une chaîne avec un caractère nul comme premier caractère:

0 1 2 3 4 5

/ 0

Chaîne C nulle

La longueur d'une chaîne nulle est de 0.

0
Saad Khalid