Il presente articolo è stato tradotto automaticamente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale. Ulteriori informazioni.
Traduzione
Originale
Questo argomento non è stato ancora valutato - Valuta questo argomento

L'operatore condizionale: ? :

expression ? expression : expression

l'operatore condizionale (? :) è un operatore ternario (accetta tre operandi). L'operatore condizionale funziona come segue:

  • Il primo operando viene convertito in modo implicito in bool. Viene valutato e tutti gli effetti collaterali vengono completati prima di continuare.

  • Se il primo operando restituisce true (1), il secondo operando viene valutato.

  • Se il primo operando restituisce false (0), il terzo operando viene valutato.

Il risultato dell'operatore condizionale è il risultato di uno degli operandi viene valutato al secondo e il terzo. Solo uno dei due operandi viene valutato in un'espressione condizionale.

Le espressioni condizionali hanno un'associatività da destra a sinistra. Il primo operando deve essere dell'integrale o di tipo puntatore. Le regole seguenti si applicano alla seconda e la terza espressioni:

  • Se entrambe le espressioni sono dello stesso tipo, il risultato è del tipo.

  • Se entrambe le espressioni sono aritmetici o tipi di enumerazione, le conversioni aritmetiche normali (descritte in conversioni aritmetiche) vengono eseguite per convertirli in un tipo comune.

  • Se entrambe le espressioni sono di tipo di puntatore o se uno è un tipo di puntatore e l'altro è un'espressione costante che restituisce 0, le conversioni del puntatore vengono eseguite per convertirele a un tipo comune.

  • Se entrambe le espressioni sono tipi di riferimento, le conversioni dei riferimenti vengono eseguite per convertirele a un tipo comune.

  • Se entrambe le espressioni sono di tipo void, il tipo più comune è void del tipo.

  • Se entrambe le espressioni sono di un tipo specifico della classe, il tipo più comune è il tipo della classe.

Tutte le combinazioni del secondo e terzo operandi non nell'elenco precedente non sono valide. Il tipo del risultato è il tipo più comune ed è un l-value se sia i secondi che sono separati sono dello stesso tipo e entrambi sono valori l-value solo.

// expre_Expressions_with_the_Conditional_Operator.cpp
// compile with: /EHsc
// Demonstrate conditional operator
#include <iostream>
using namespace std;
int main() {
   int i = 1, j = 2;
   cout << ( i > j ? i : j ) << " is greater." << endl;
}
Il documento è risultato utile?
(1500 caratteri rimanenti)

Aggiunte alla community

AGGIUNGI
© 2013 Microsoft. Tutti i diritti riservati.