C char initialisation de tableau

Je ne suis pas sûr de ce qui va être dans le char tableau après l'initialisation de la manière suivante.

1.char buf[10] = "";

2. char buf[10] = " ";

3. char buf[10] = "a";

Pour le cas 2, je pense que buf[0] devrait être ' ', buf[1] devrait être '\0', et de buf[2] à buf[9] sera contenu aléatoire. Pour le cas 3, je pense que buf[0] devrait être 'a', buf[1] devrait être '\0', et de buf[2] à buf[9] sera contenu aléatoire.

Est-ce exact?

Et pour le cas 1, ce sera dans le buf? buf[0] == '\0' et de buf[1] à buf[9] sera contenu aléatoire?

  • Aucun de ces tableaux sont initialisés.
  • Eh bien, mon compilateur n'accepte pas votre (corrigé) code: "tableau de type 'char [10] " n'est pas assignable".
  • maintenant, il va travailler...
  • char buf[10]; buf = "a"; ne compile pas. - S'il vous plaît essayez d'abord, et ensuite copier/coller votre code dans la question. Qui permet d'économiser beaucoup de travail pour vous et pour tous les lecteurs de votre question.
  • Désolé pour ça. Je pensais que je peux attribuer le buf[] dernier, mais il semble que non. Maintenant, le code s'exécute.
  • Double Possible de un littéral de chaîne de comptage partiel de l'initialiseur et zéro-initialiser?
  • Âgées de question n'a de réponses dessin de normes et parle aussi d'agrégation de l'initialiseur ainsi
  • Je ne pense pas que la question couvre toutes les question ici. Aussi, c'est une question de recherche convivial et clair, ce qui donne plus de points de vue sur cette question. Merci!

InformationsquelleAutor lkkeepmoving | 2013-09-08