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.