Question sur un point de syntaxe
Bonsoir,
Quelqu'un pourrait-il m'expliquer pourquoi ces deux lignes ne sont pas équivalentes ?
Code:
tableau[b+1] = '\0';
Code:
tableau[b++] = '\0';
Voici les deux exemples :
N.B : data est tableau de type char contenant 8 caractères, soit de taille 8+1.
Code:
1 2 3 4 5 6 7 8 9 10
| for (b = 0; b < COMPTER_CH(data); b++)
{
printf("B = %d\n", b);
tableau[b] = data[b];
printf("tableau[%d] = %c\n", b, tableau[b]);
}
tableau[b] = '\0';
printf("tableau[%d] = %c\n", b, tableau[b]);
tableau[b+1] = '\0';
printf("tableau[%d] = %c\n", b, tableau[b]); |
Avec ce code, j'obtiens bien tableau[9] == '\0'.
Code:
1 2 3 4 5 6 7 8 9 10
| for (b = 0; b < COMPTER_CH(data); b++)
{
printf("B = %d\n", b);
tableau[b] = data[b];
printf("tableau[%d] = %c\n", b, tableau[b]);
}
tableau[b] = '\0';
printf("tableau[%d] = %c\n", b, tableau[b]);
tableau[b++] = '\0';
printf("tableau[%d] = %c\n", b, tableau[b]); |
Avec celui-là, j'obtiens n'importe quoi : tableau[9] est égal à tout sauf la valeur que je souhaite lui donner, ici la valeur nulle.
Je pensais que les deux expressions b++ et b+1 était équivalente, mais j'ai dû me tromper...
Merci de m'éclairer.
:ccool: