Pour les problèmes liés à la définition ou à l'exécution d'opérations de post-incrémentation.

post-increment...

Dans le code suivant: int main() { int i, j; j = 10; i = (j++, j+100, 999+j); cout << i; return 0; } Le résultat est 1010 . Cependant, cela ne devrait-il pas être 1009, car ++ devrait être fait après que l'expression entière soit utilisée?....
3 avril 2020 à 00:04
Prenons le code suivant: int main() { int i = 2; int b = ++i++; return 3; } Il compile avec ce qui suit avec une erreur: <source>: In function 'int main()': <source>:3:16: error: lvalue required as increment operand 3 | int b = ++i++; | ^~ Cela me semble....
Je n'obtiens pas la sortie attendue dans le code C suivant main(){ int i=0,j=-2,k=0,m; if((!i||--j&&k++)&&(i++||j++&&!k++)) { printf("i=%d j=%d k=%d",i,j,k); } return 0; } J'ai la sortie dans le compilateur comme: i=1 j=-1 k=1 Mais je ne comprends pas ce qui se passe ....
Je comprends la différence entre ces opérations (post-incrémentation, pré-incrémentation). Mais question: j'ai une expression: int x = 4; long y = x * 4 - x++; La priorité la plus élevée a un opérateur post-unaire, que "*" et le dernier "-". À mon avis, ce sera: long y = x * 4 - x++; 1). x++ => re....
15 mars 2019 à 10:55
J'ai essayé cet exemple de tableau et post incrémentation / pré incrémentation sur ses éléments #include<stdio.h> int main() { int j[5] = {5, 1, 15, 20, 25}; int k , l, m, n; n = ++j[1]; k = ++j[1]; l = j[1]++; m = j[k++]; printf("\n%d, %d, %d, %d", n, k, l, m ); ....
15 mars 2019 à 09:18