2016-03-07 1 views
-2

r a toujours le dernier entier entre parenthèses.Pourquoi int r = (int, int, int); ne donne pas d'erreur et r a la valeur du dernier entier?

Quelle est la sortie du programme suivant?

#include <iostream> 
using namespace std; 
main() { 
    int i = 1, j = 2, k = 3, r; 
    r = (i, j, k); 
    cout << r <<endl; 
} 

Réponses possibles:

A - 1 
B - 2 
C - 3 
D - Compile Error 

Ce que je veux savoir pourquoi cela se produit.

+3

[opérateur Virgule] (https://en.wikipedia.org/wiki/Comma_operator) – BoBTFish

+0

@juanchopanza Alors ce n'est pas un doublon, du moins pas de cette question. –

+3

La réponse courte à la question dans le titre: parce que c'est ainsi que le langage 'C' a été conçu pour fonctionner (et' C++ 'a hérité de ce comportement). – axiac

Répondre