J'ai un pointeur int
(c'est-à-dire int *count
) que je souhaite incrémenter l'entier pointé en utilisant le ++
opérateur. J'ai pensé appeler:
*count++;
Cependant, je reçois un avertissement de build "résultat d'expression inutilisé". Je peux appeler
*count += 1;
Mais je voudrais savoir comment utiliser le ++
opérateur également. Des idées?
Le ++ a la même priorité que le * et l'associativité est de droite à gauche . Voir ici. Il est rendu encore plus complexe car même si le ++ sera associé au pointeur l'incrément est appliqué après l'évaluation de la déclaration.
L'ordre dans lequel les choses se produisent est le suivant:
Vous obtenez l'avertissement parce que vous n'utilisez jamais la valeur déréférencée à l'étape 2. Comme le dit @Sidarth, vous aurez besoin de parenthèses pour forcer l'ordre d'évaluation:
(*ptr)++
Essayez d'utiliser (*count)++
. *count++
peut incrémenter le pointeur à la position suivante, puis utiliser l'indirection (ce qui n'est pas intentionnel).