c++ - online - operator precedence java
La salida de cout<< 1 && 0; (1)
No entiendo por qué se imprime el siguiente código 1
.
1 && 0
no es lo mismo que true && false
-> false
?
¿Por qué esto no imprime 0
?
#include <iostream>
using namespace std;
int main(){
cout << 1 && 0;
return 0;
}
Se trata de la precedencia del operador .
El operator<<(std::basic_ostream)
Operador de cambio a la izquierda de Bitwise sobrecargado operator<<(std::basic_ostream)
tiene una prioridad más alta que el operador lógico Y del operador &&
.
#include <iostream>
int main() {
std::cout << (1 && 0);
return 0;
}
Si no está seguro al 146% de la prioridad de un operador, no dude en utilizar corchetes. La mayoría de los IDE modernos le dirán si no necesita usarlos.