2010-08-14 2 views

risposta

0

(1,2) viene valutato come l'ultima espressione della lista, cioè 2.

Un altro esempio: (a,b,c) valuterà a c.

Nel caso in cui si desidera utilizzare un numero frazionario, utilizzare un galleggiante doppio tipo/e utilizzare il punto come un simbolo decimale: double d = 1.2;

6

all'interno delle parentesi, la lingua specifica si verificherà un'espressione. In tal caso (b), la virgola rappresenta l'operatore virgola da C.

Senza parentesi, la lingua specifica che le dichiarazioni di variabili sono separate da virgole. Nell'esempio di a, il compilatore (parser) si aspetta dichiarazioni di variabili aggiuntive.

9

int a = 1,2;2 viene considerato come un nome di variabile che non può iniziare con un numero, quindi l'errore.

int b = (1,2);comma operator valuta le operandi da sinistra a destra e restituisce l'ultima espressione della lista vale a dire 2

3

La ragione è nella vostra prima dichiarazione int a = 1,2; la virgola non viene analizzato per essere un operatore di sequenza. Fa parte di un elenco di dichiarazioni e tenta di creare un'istanza di una variabile intera denominata 2 che non è consentita dalla lingua.

Le parentesi nella seconda istruzione int b = (1,2); impongono la virgola da analizzare come operatore di sequenza.

0

Nessuno di loro aveva senso per me a pugno.

Ma poi ho ricordato più operazioni in cicli for. Ad esempio:

for (a=1,b=2; a<1; a++) 

Sapendo che è un'espressione valida, e che le espressioni sono elemnts validi della lingua, la mia conclusione è che (1,2) viene valutata 1 (ma non fa nulla con esso), quindi valuta 2 e restituisce 2.

e infine:

b = (1,2); 

che cosa è valutare 1 e 2 come prima, ritorno 2, e assegnarlo a b.