IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

 C Discussion :

Les tableaux de chaine questions


Sujet :

C

  1. #1
    Membre actif
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 253
    Points
    253
    Par défaut Les tableaux de chaine questions
    Bonjour,
    Je me posais quelques questions sur les tableaux , par exemple
    quand on déclare un tableau comme ceci
    char chaine[4][10]={"Hello","salut","bonsoir","bonjour"};

    le 4 représente le nombre de lignes n-1 cependant il y a un truc que je ne comprends pas le 10 représente le nombre de caractère maximum par case du tableau ou au total ? la chaine hello par exemple elle ne doit pas dépasser 10 c'est bien cela ?

    Autre chose j'ai vu qu' on peut écrire tab[i++] et tab[i]++ la première écriture augmente le case de 1 après l'affectation c'st un peu comme on écrit tab[i]=tab[i]+1; à l'inverse de tab[++i];
    mais la seconde est-ce qu'elle augmente l'adresse du tableau ? tab[i]++ ou ce sont les mêmes écritures ?

    Merci

  2. #2
    Membre confirmé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 096
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 096
    Points : 633
    Points
    633
    Par défaut
    Citation Envoyé par Johnny P. Voir le message
    Bonjour,
    Je me posais quelques questions sur les tableaux , par exemple
    quand on déclare un tableau comme ceci
    char chaine[4][10]={"Hello","salut","bonsoir","bonjour"};

    le 4 représente le nombre de lignes n-1 cependant il y a un truc que je ne comprends pas le 10 représente le nombre de caractère maximum par case du tableau ou au total ? la chaine hello par exemple elle ne doit pas dépasser 10 c'est bien cela ?

    Autre chose j'ai vu qu' on peut écrire tab[i++] et tab[i]++ la première écriture augmente le case de 1 après l'affectation c'st un peu comme on écrit tab[i]=tab[i]+1; à l'inverse de tab[++i];
    mais la seconde est-ce qu'elle augmente l'adresse du tableau ? tab[i]++ ou ce sont les mêmes écritures ?

    Merci
    Salut,

    pour la deuxieme partie tu te trompes

    correspond à :
    alors que :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    tab[i++] correspond à 
    tab[i] = ....;
    i++;

  3. #3
    Membre chevronné
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 104
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 104
    Points : 1 750
    Points
    1 750
    Par défaut
    quand on déclare un tableau comme ceci
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char chaine[4][10]={"Hello","salut","bonsoir","bonjour"};
    (...) cependant il y a un truc que je ne comprends pas le 10 représente le nombre de caractère maximum par case du tableau ou au total ?
    Cela déclare tout simplement un tableau à deux dimensions de 4 * 10 éléments. Chaque "ligne" fait 10 éléments et la chaine contenue dedans ne peut donc être longue que de 9 caractères maximum (le '\0' final terminant cette chaine et devant lui aussi entrer dans la "ligne" du tableau).

    retournera un warning, t'indiquant que l'expression est sans effet ou quelque chose de similaire. En effet, cela est équivalent à :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tab[i]; /* expression sans effet */
    i++;
    Même chose en utilisant le ++ préfixé.

    incrémente de 1 l'élément du tableau, pas l'indice.

    Maintenant,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tab[i++] = valeur_quelconque ;
    ne fera pas la même chose que
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    tab[++i] = valeur_quelconque ;
    Dans le premier cas, i est incrémenté après, alors que dans le second cas, il est incrémenté avant.

  4. #4
    Membre actif
    Inscrit en
    Février 2006
    Messages
    311
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 311
    Points : 253
    Points
    253
    Par défaut
    Merci de vos réponses claires il y aussi une chose que j'ai remarqué c'est quand on fait ++tab[i] cela augmente le chiffre contenu dans les cases
    mais à quelle écriture correspond ?
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int tab[3]={2,3,2};
    int i
    for(i=o; i<3; i++)
    printf("%d",++tab[i]);
    Autre le fait que le résultat est 3 4 3 cette écriture est me semble différente des autres ?

  5. #5
    Membre confirmé Avatar de Flow_75
    Femme Profil pro
    Ingénieure
    Inscrit en
    Mai 2005
    Messages
    1 096
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Ingénieure
    Secteur : Transports

    Informations forums :
    Inscription : Mai 2005
    Messages : 1 096
    Points : 633
    Points
    633
    Par défaut
    Citation Envoyé par Johnny P. Voir le message
    Merci de vos réponses claires il y aussi une chose que j'ai remarqué c'est quand on fait ++tab[i] cela augmente le chiffre contenu dans les cases
    mais à quelle écriture correspond ?
    ex:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    int tab[3]={2,3,2};
    int i
    for(i=o; i<3; i++)
    printf("%d",++tab[i]);
    Autre le fait que le résultat est 3 4 3 cette écriture est me semble différente des autres ?
    en faite

    incrémente la variable

    avant de l'afficher

    c'est comme si tu faisais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int tab[3]={2,3,2};
    int i
    for(i=o; i<3; i++)
    {
    tab[i]++;
    printf("%d",tab[i]);
    Autre le fait que le résultat est 3 4 3 cette écriture est me semble différente des autres ?[/QUOTE]

Discussions similaires

  1. [MySQL] Question simple sur les tableaux pour un initié
    Par bom8407@hotmail.com dans le forum PHP & Base de données
    Réponses: 7
    Dernier message: 01/03/2007, 11h22
  2. Question basique sur les tableaux
    Par valanagrid dans le forum C++
    Réponses: 8
    Dernier message: 08/11/2006, 15h47
  3. Réponses: 9
    Dernier message: 13/06/2006, 21h52
  4. [Tableaux] Question sur les tableaux
    Par Shandler dans le forum Langage
    Réponses: 16
    Dernier message: 21/04/2006, 00h15
  5. question sur les tableaux
    Par Neko dans le forum C++
    Réponses: 13
    Dernier message: 14/02/2006, 02h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo