2010-08-14 8 views

Respuesta

0

(1,2) evalúa a la última expresión de la lista, es decir 2.

Otro ejemplo: (a,b,c) evaluaría a c.

En caso de que desee utilizar un número fraccionario, utilizar una/doble tipo flotador y utilizar el punto como símbolo decimal: double d = 1.2;

6

dentro de los paréntesis, la lengua especifica ocurrirá una expresión. En ese caso (b), la coma representa el operador de coma de C.

Sin paréntesis, el idioma especifica que las declaraciones de variables están separadas por comas. En el ejemplo de a, el compilador (analizador) espera declaraciones de variables adicionales.

9

int a = 1,2;2 se trata como un nombre de variable que no puede comenzar con un número, de ahí el error.

int b = (1,2);comma operator evalúa los operandos de izquierda a derecha y devuelve la última expresión de la lista, es decir 2

3

La razón está en su primera declaración int a = 1,2; la coma no se analiza a ser un operador de secuencia. Es parte de una lista de declaraciones e intenta crear una instancia de una variable entera llamada 2 que no está permitida por el idioma.

Los paréntesis en la segunda instrucción int b = (1,2); obligan a la coma a analizarse como un operador de secuencia.

0

Ninguno de ellos tenía sentido para mí en el puño.

Pero luego recordé varias operaciones en bucles for. Por ejemplo:

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

Sabiendo que es una expresión válida, y que las expresiones son elemnts idiomas válidos, mi conclusión es que (1,2) evalúa 1 (pero no hace nada con él), después evalúa 2 y vuelve 2.

y por último:

b = (1,2); 

lo que hace es evaluar 1 y 2 como antes, el retorno 2, y asignarla a b.

Cuestiones relacionadas