En VC2008, he escrito este código:¿Por qué el resultado 2 + 1 y 0 es 0?
int a = 2 + 1 & 0;
y el resultado de esta expresión es a = 0
Por qué el resultado es 0, pero no 2?
En VC2008, he escrito este código:¿Por qué el resultado 2 + 1 y 0 es 0?
int a = 2 + 1 & 0;
y el resultado de esta expresión es a = 0
Por qué el resultado es 0, pero no 2?
Debido a que el operador &
is evaluated after el operador +
y 3 & 0
es igual 0
.
Por supuesto, puede colocar llaves alrededor de las expresiones para cambiar el orden de evaluación. Por ejemplo:
int a = 2 + (1 & 0);
/* a == 2 */
búsqueda Precedente del operador en C/C++. –