Exercice 7
Énoncé
Quels résultats fournira ce programme :
#include
using namespace std ;
main()
{ int n, p, q ;
n = 5 ; p = 2 ; /* cas 1 */
q = n++ >p || p++ != 3 ;
cout << "A : n = " << n << " p = " << p << " q = " << q << "\n" ;
n = 5 ; p = 2 ; /* cas 2 */
q = n++

cout << "B : n = " << n << " p = " << p << " q = " << q << "\n" ;
n = 5 ; p = 2 ; /* cas 3 */
q = ++n == 3 && ++p == 3 ;
cout << "C : n = " << n << " p = " << p << " q = " << q << "\n" ;
n = 5 ; p = 2 ; /* cas 4 */
q = ++n == 6 && ++p == 3 ;
cout << "D : n = " << n << " p = " << p << " q = " << q << "\n" ;
}
Il ne faut pas oublier que les opérateurs && et || n’évaluent leur second opérande que
lorsque cela est nécessaire. Ainsi, ici, il n’est pas évalué dans les cas 1 et 3. Voici les
résultats fournis par ce programme :
A : n = 6 p = 2 q = 1
B : n = 6 p = 3 q = 1
C : n = 6 p = 2 q = 0
D : n = 6 p = 3 q = 1
27

Précédent

- 28/398

Suivant