Comment puis-je utiliser des pointeurs vers des chaînes d'affichage dans un tableau?

Je pratique à l'aide de pointeurs.

J'ai un pointeur sur un tableau de 3 chaînes: "chien", "chat", "rat".

Je peux imprimer le contenu à l'aide d'un for boucle et à l'aide d'un tableau.

Cependant, je vais avoir des problèmes d'impression en utilisant l'arithmétique des pointeurs. Je tiens à incrémenter le pointeur vers l'élément suivant du tableau. Cependant, tout ce qu'il fait est d'imprimer le chien lettres.

Code:

int main(int argc, char **argv)
{
    char *str[3] = { "DOG", "CAT", "RAT"};
    int i = 0;

    /* display using an array element */
    for(i = 0; i < 3; i++)
    {
    printf("str: %s\n", str[i]);
    }

    /* display using a pointer arthimatic */
    while((*str)++)
    {
    printf("str: %s\n", str);
    }

    getchar();

    return 0;
}

Comment puis-je y arriver?

Edit:

Code:

while(str)
{
    printf("str: %s\n", *(str++));
}

Cependant, j'obtiens ce message d'erreur. Ne pas le I-valeur doivent être une variable d'une certaine sorte?

erreur C2105: '++' des besoins de la l-valeur

il est de bonne pratique de ne pas incrémenter str, mais une variable de boucle qui est initialisé avec des str, de sorte que vous pouvez accéder str plus tard encore. char *boucle = str; while (boucle)...
Voir ma réponse ci-dessous: souligné pourquoi vous obtenez ce message d'erreur.

OriginalL'auteur ant2009 | 2009-03-18